|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.08.2008, 23:30 | #1 |
Форумчанин
Регистрация: 21.04.2008
Сообщений: 164
|
Ошибки в программе(visual c+++)
Написал прогу, которая проверяет, каким регистром пользователь ввел слово (Верхним / нижним или и тем и тем) .Выдает вот такие ошибки:
c:\projects\upper register\u.cpp(14) : error C2664: 'strlwr' : cannot convert parameter 1 from 'char' to 'char *' Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast c:\projects\upper register\u.cpp(15) : error C2664: 'strupr' : cannot convert parameter 1 from 'char' to 'char *' Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast Error executing cl.exe. Upper register.exe - 2 error(s), 0 warning(s) Помогите пожалуйста разобраться. cannot convert parameter 1 from 'char' to 'char *' может я с указателями чего-то не понял. Код: Код:
|
23.08.2008, 00:33 | #2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Ну так вам же сказал компилятор, что вы передаёте символ, а нужно передавать строку. Функция strlwr - переводит строку в нижний регистр и возвращает указатель на эту строку
|
23.08.2008, 00:44 | #3 | |
Форумчанин
Регистрация: 21.04.2008
Сообщений: 164
|
Цитата:
|
|
23.08.2008, 01:14 | #4 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Вот примерно решение "в лоб"
Код:
т.е. после b = _strlwr(a); b и а будут указывать на одну и ту же строку или b будет равен NULL, если произойдет сбой Последний раз редактировалось pu4koff; 23.08.2008 в 01:18. |
23.08.2008, 01:38 | #5 |
Форумчанин
Регистрация: 21.04.2008
Сообщений: 164
|
Да про string compare я и не подумал, спасибо.
А в моём примере что нужно изменить чтобы она заработала с моим текстом(просто не хочу переписывать со strcmp'ром)? Еще два вопроса:1)Указатель в вашем случае служит временным файлом? 2)Где можно посмотреть как работает функция strdup и всю прочею инфу про нее? ЗЫ.могу поделится таким сайтом но правда там нет функции strdup http://www.cplusplus.com/reference/clibrary/ Последний раз редактировалось JOFRIF; 23.08.2008 в 01:53. |
23.08.2008, 14:17 | #6 | |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Цитата:
Только вот зачем у Вас два совершенно идентичных параметра у функции? Логичнее было бы передавать только указатель на начало строки, с учетом что она заканчивается нулём или ещё передавать длину проверяемой строки, в таком случае можно будет проверять не всю строку, а отдельные её слова. Каким еще файлом? lo_str и hi_str используются для хранения указателей на две вспомогательные временные строки MSDN или в яндексе просто ищете по strdup и читаете. Главное не забывать после её использования очищать память посредством вызова free(х), как это сделал я в приведенном примере |
|
23.08.2008, 16:20 | #7 | ||
Форумчанин
Регистрация: 21.04.2008
Сообщений: 164
|
Цитата:
и для подсчета букв, чтобы потом сравнить длину насчитаных букв, со вторым параметром slovo_zelikom[], который ожидает слово целиком. Цитата:
|
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
помогите исправить ошибки в программе... | VDK23 | Помощь студентам | 1 | 17.04.2008 13:05 |
Помогите исправить ошибки в программе | Gambit90 | Помощь студентам | 1 | 20.12.2007 16:24 |
Visual c++ 2005 и Visual c++ 6 это разные версии или нет? | Руслантус | Свободное общение | 3 | 30.11.2007 19:42 |
Visual J# from Microsoft Visual Studio .NET | Flash_ | Общие вопросы по Java, Java SE, Kotlin | 2 | 28.12.2006 10:16 |