|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
31.08.2013, 13:33 | #1 |
Форумчанин
Регистрация: 10.11.2008
Сообщений: 120
|
Подсчитать количество одинаковых слов в строке
В чем ошибка?? Ругается на строку с функцией strcmp. Как исправить
Код:
помог - жми на весы
Последний раз редактировалось Stilet; 31.08.2013 в 20:27. |
31.08.2013, 13:42 | #2 |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,680
|
Первое что режет глаз. Отсутствие хэдэр файла для работы со строками.
Код:
Код:
Код:
Код:
Код:
Еще к вам вопрос, что вы передаете в функцию Код:
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! Последний раз редактировалось Bugrimov; 31.08.2013 в 13:51. |
31.08.2013, 13:48 | #3 |
Форумчанин
Регистрация: 10.11.2008
Сообщений: 120
|
Всё равно ругается компилятоор
помог - жми на весы
|
31.08.2013, 14:50 | #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. |
31.08.2013, 14:54 | #5 | |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
Цитата:
P.S - хотел прикрепить это сообщение к своему предыдущему. Проблема в том, что не пойму, как удалить это сообщение. Последний раз редактировалось Igor95; 31.08.2013 в 15:11. |
|
31.08.2013, 15:23 | #6 | |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,680
|
Цитата:
Кстати, в стандарт на Си уже входит булевый тип???????????? C++ и есть...
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! Последний раз редактировалось Bugrimov; 31.08.2013 в 15:25. |
|
31.08.2013, 16:10 | #7 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
Все, что нужно для решения задачи (в разумных пределах)
Или я чего-то не понял? C не поддерживает ОО парадигмы |
31.08.2013, 17:50 | #8 |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,680
|
Спрошу по другому
Код:
Теперь мне все ясно!!!!!!!!!
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! Последний раз редактировалось Bugrimov; 31.08.2013 в 19:32. |
31.08.2013, 18:05 | #9 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
Длину строки.
strlen(const char*) - требует указатель на char. Константа s является адресом начала массива и хранит его адрес. При передаче s в качестве аргумента компилятор неявно приводит его к указателю. Поэтому все будет отлично работать. Последний раз редактировалось Igor95; 31.08.2013 в 18:08. |
31.08.2013, 19:25 | #10 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Код:
Правда, я не понял, что значит "Подсчитать количество одинаковых слов в строке". Влияет ли одинаковый регистр или нет? По вышеприведенному коду получается, что если слово встречалось ранее, то нужно увеличить счетчик одинаковых слов, т.е., например, в строке "привет привет" 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 |