Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Технологии > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 31.07.2010, 22:02   #1
green-tree
 
Регистрация: 16.07.2010
Сообщений: 7
По умолчанию Проверка содержимого строки в c++

Здравствуйте, уважаемые программисты

Хотел модернизировать свою программку - конвертер градусов и задался вопросом. Как в зависимости от того, какое содержимое у строковой переменной, запрограммировать дальнейшее поведение программы. Вот простейший пример:

Код:
#include <iostream>
   
int main() {

char answer;
std::cout << "Введите слово";
std::cin >> answer;

if (answer = "one") 
    std::cout << "Да";
else
    std::cout << "Нет";
}
Суть в следующем:
если пользователь ввел слово one, программа реагирует выводом сообщения "Да", в ином случае выводом сообщения "Нет". Но это не работает

Как подобную проверку (на этом простейшем примере" можно реализовать?

Заранее спасибо

Последний раз редактировалось Stilet; 03.08.2010 в 09:14.
green-tree вне форума   Ответить с цитированием
Старый 01.08.2010, 23:20   #2
creator32
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 18
По умолчанию

ОБРАТИТЕ ВНИМАНИЕ :
Код:
if (answer = "one")
std::cout << "Да";
else
std::cout << "Нет";
т.е. в указанном месте должно быть сравнение (==), а не присваивание (=). очень распространенная ошибка.
creator32 вне форума   Ответить с цитированием
Старый 02.08.2010, 00:10   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,075
По умолчанию

ОБРАТИТЕ ВНИМАНИЕ :
Код:
char answer;
Это ОДИН символ и все.

Код:
if (answer == "one")
Даже так строки-char* не сравнивают.
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 02.08.2010, 00:22   #4
creator32
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 18
По умолчанию

поэтому Вам следует образовать не
Код:
char answer;
, а
Код:
char * answer;
после чего сравнивать следующими функциями:
Цитата:
Для лексикографического сравнения строк используются функции strcmp и stricmp. Первая сравнивает строки с учетом регистра, вторая – без. Однако, все это относится только к латинице. Если вы хотите сравнивать без учета регистра кириллические строки, придется разобраться с локалями.

Прототипы этих функций таковы:

Код:
int stricmp(const char *string1, const char *string2);
int strcmp(const char *string1, const char *string2);
Обе функции возвращают число меньшее 0, если первая строка меньше второй, большее нуля если первая строка больше второй и 0, если строки лексикографически равны.

Источник: http://www.rsdn.ru/article/cpp/cstr.xml
creator32 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод символьной строки,вывод содержимого соответствующего регистра(TASM) adgam Assembler - Ассемблер 1 17.03.2010 09:48
Проверка содержимого блоб поля Lokos БД в Delphi 1 04.03.2010 08:43
проверка содержимого поля Edit KaimNotark Общие вопросы Delphi 6 16.02.2010 08:45
проверка строки Артэс Общие вопросы C/C++ 13 21.01.2010 01:28
Проверка строки SL1CK Общие вопросы C/C++ 4 08.06.2009 18:41


08:31.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.