![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 10.11.2008
Сообщений: 120
|
![]()
В чем ошибка?? Ругается на строку с функцией strcmp. Как исправить
Код:
помог - жми на весы
![]() Последний раз редактировалось Stilet; 31.08.2013 в 20:27. |
![]() |
![]() |
![]() |
#2 |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,680
|
![]()
Первое что режет глаз. Отсутствие хэдэр файла для работы со строками.
Код:
Код:
Код:
Код:
Код:
![]() Еще к вам вопрос, что вы передаете в функцию Код:
![]()
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! Последний раз редактировалось Bugrimov; 31.08.2013 в 13:51. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 10.11.2008
Сообщений: 120
|
![]()
Всё равно ругается компилятоор
помог - жми на весы
![]() |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
![]()
В strcmp требуется передавать адрес, а не значение.
s[i] - значение типа char. s[i] годилось бы, если бы s было указателем на указатель. Тогда s[i] было бы адресом, хранящимся в указателе, на который указывает s. &s[i] - указатель, т.е адрес, указывающий на ячейку памяти, где хранится значение типа char. Только вот &s[i] - не строка. А функция strcmp будет искать символ окончания строки. Т.е передавать &s[i] в качестве параметра туда, где требуется строка небезопасно. Подумайте, даже само имя функции strcmp говорит о том, что нужно передать адреса начала строк. ___________________________________ ___________________________________ __________ Да, и программа у вас на C, а подключается библиотека C++ - iostream. Компилятору-то все равно, а вот программистов этот факт будет смущать. ___________________________________ ___________________________________ __________ Насчет Код:
Возвращаемое значние > 0, если первая строка больше второй. Т.е для if выполнится true. Возвращаемое значение < 0, если вторая строка больше первой. Т.е для if выполнится true. Последний раз редактировалось Igor95; 31.08.2013 в 15:08. |
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
![]() Цитата:
P.S - хотел прикрепить это сообщение к своему предыдущему. Проблема в том, что не пойму, как удалить это сообщение. Последний раз редактировалось Igor95; 31.08.2013 в 15:11. |
|
![]() |
![]() |
![]() |
#6 | |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,680
|
![]() Цитата:
![]() Кстати, в стандарт на Си уже входит булевый тип???????????? C++ и есть... ![]()
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! Последний раз редактировалось Bugrimov; 31.08.2013 в 15:25. |
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
![]()
Все, что нужно для решения задачи (в разумных пределах)
![]() Или я чего-то не понял? C не поддерживает ОО парадигмы |
![]() |
![]() |
![]() |
#8 |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,680
|
![]()
Спрошу по другому
Код:
Теперь мне все ясно!!!!!!!!! ![]() ![]() ![]()
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! Последний раз редактировалось Bugrimov; 31.08.2013 в 19:32. |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
![]()
Длину строки.
strlen(const char*) - требует указатель на char. Константа s является адресом начала массива и хранит его адрес. При передаче s в качестве аргумента компилятор неявно приводит его к указателю. Поэтому все будет отлично работать. Последний раз редактировалось Igor95; 31.08.2013 в 18:08. |
![]() |
![]() |
![]() |
#10 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,430
|
![]() Код:
![]() Правда, я не понял, что значит "Подсчитать количество одинаковых слов в строке". Влияет ли одинаковый регистр или нет? По вышеприведенному коду получается, что если слово встречалось ранее, то нужно увеличить счетчик одинаковых слов, т.е., например, в строке "привет привет" 1 одинаковое слово.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подсчитать количество слов в строке | Chainik! | Общие вопросы C/C++ | 31 | 10.04.2016 01:55 |
Подсчет одинаковых слов в строке | versegg | Помощь студентам | 0 | 27.05.2012 19:39 |
Количество одинаковых слов в строке. Delphi | topside | Помощь студентам | 10 | 30.10.2011 23:05 |
Подсчитать количество слов и количество букв | MDSIQ | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 13.11.2010 16:57 |