2 / 2 / 0
Регистрация: 26.12.2012
Сообщений: 17
|
||||||
1 | ||||||
Как из указателя на массив достать конкретное значение массива04.02.2013, 20:04. Показов 1894. Ответов 3
Метки нет (Все метки)
Добрый день. Недавно написал программу проверки предложения на панграмму. Панграмма — текст, использующий все или почти все буквы алфавита. Всё получилось, но потом решил немного её передать так, чтобы если программа обнаруживала, что какой-либо буквы не хватает, записывала её в отдельный массив, а потом выводило сообщение, что данная строка не является пангаммой, т.к. в ней не хватает букв ... Но тут столкнулся с проблемой: в функцию проверки я передал указатель на массив текста, а как достать из него конкретную недостающую букву для записи её в отдельный массив, понять не могу Попытался создать указатель на массив недостающих букв и уже через него присвоить значение от основного - не вышло(
0
|
04.02.2013, 20:04 | |
Ответы с готовыми решениями:
3
как достать из текстового и типизированного файла конкретное значение Как достать из БД конкретное значение кошелька по логину юзера? Присвоить конкретное значение нескольким элементам массива Как при вызове функции df в терминале, вывести конкретное значение |
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
|
|
05.02.2013, 20:59 | 2 |
а почему размер nostr всего 20? если мне память не изменяет в английском алфавите 26 букв... значит нужно выделить под массив память nostr[27]...
1
|
449 / 415 / 124
Регистрация: 03.02.2013
Сообщений: 1,295
|
||||||
06.02.2013, 05:29 | 3 | |||||
если вас беспокоит этот код
во первых pno - это указатель (ну так он у вас заявлен) на структуру nostr, имеющую 20 позиций... я думаю такова была мысль при написании этого кода? это не совсем так... порассуждаем... операция указатель[число] - это синтаксический сахар в компиляторе, она ничто иное как *(a + i * sizeof(a)), для a=1, коим является char - и вовсе *(a+i), откуда не важно как вы запишите что pno[n], что n[pno], результат один - берётся указатель от суммы этих чисел... первое из них - это указатель, второе смещение от этого указателя в байтах... от перестановки - сумма не меняется отлично и куда же ссылается в предельном случае цикла сей указатель? а это зависит от числа n, я уже отсюда вижу, не исполняя код - что для пустой строки n достигнет 25 точно... что несмонено больше позволеному ему в nostr[20] выход - наверняка segmentation fault аналогично если поглядеть на правую часть - str2 тоже указатель, всё по аналогии... так 1[str2]=str2[1] и т.д. у вас туда пихается j равный длине строки... то вы всегда попадается за пределы строки str2, к чему? там "/0" символ и ничего интересного... а пихаете вы его в непонятные и недозволенные адреса... дальше... если вкопаетесь в main - там есть строчка char str[80]; str - это тоже указатель... и str[1] = 1[str] и при вызове своей функции вы лишь передаёте значения адреса str в str2 т.е. по сути ничего внутри функции не меняется... пользуйтесь str2 как обычным str... str2[2] вернёт вам str[2], т.е. третий символ строки... 2[str2] сделает тоже самое ) так же выкиньте эту фигню: *pno=nostr; общайтесь с nostr так же по индексам...
1
|
2 / 2 / 0
Регистрация: 26.12.2012
Сообщений: 17
|
|||||||||||
10.02.2013, 20:05 [ТС] | 4 | ||||||||||
abit, Спасибо за подробное объяснение Сам себя запутал. Мой предыдущий код был полностью неверным. Если бы я даже написал верно
Спасибо, не учел этого сразу Вот исправленный код:
0
|
10.02.2013, 20:05 | |
10.02.2013, 20:05 | |
Помогаю со студенческими работами здесь
4
достать значение с массива Как одним запросом достать все значение всех полей из comments и соответствующее значение из users Есть одномерный массив данных, как его аппроксимировать и получить конкретное число, используя МНК Передача указателя на массив и использование этого массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |