Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 16

С++ надо выполнить проверку на слово типа if(a == 'да') то вывести на экран

29.01.2016, 20:18. Показов 5320. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я только учу с++, и столкнулсяс проблемой, я написал код для "пробной" программы и вообщем проблема в том что есть переменная типа string и я хочу что бы после ввода например слова "да" оператор if проверял совпадает ли это и если да то выводило бы что все верно все ок и так далее.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.01.2016, 20:18
Ответы с готовыми решениями:

Надо организовать проверку на введенную строку, если есть цифры то должно вывести ошибку
cout << "Введите Ф.И.О директора: "; a.Name_director = new char; cin.get(); cin.getline(a.Name_director, 40); int n =...

Если первое слово в исходной строке состоит из 4 символов, то вывести это слово на экран
Если первое слово в исходной строке состоит из 4 сисмволов,то вывести это слово на экран если нет,то проверить состот ли оно из цифор если...

Дано слово. Вывести на экран его последнее слово
Дано слово. Вывести на экран его последнее слово.С блок схемой.

18
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
29.01.2016, 20:35
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <locale>
 
using namespace std;
 
 int main()
 {
     wcout.imbue(locale("rus_rus.866"));
     wcin.imbue(locale("rus_rus.866"));
 
     wstring wstr;
     wcout << L"Введите слово (да/нет): ";
     wcin >> wstr;
     if (wstr == L"да")
         wcout << L"Всё верно!" << endl;
     else
         wcout << L"Неверно!" << endl;
 
     system("pause");
     return 0;
 }
0
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 5
29.01.2016, 20:39
Если я правильно понял вопрос, то так. Сам новичок)
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
using namespace std;
 
int main()
{
  string st;
  cin >> st;
  if (st=="da")
    cout << "well done";
    return 0;
}
0
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 16
29.01.2016, 21:40  [ТС]
вообще я так делал но не выходило, это могло быть из за того что "да" было написано на русском

Добавлено через 22 минуты
буква 'w' обязательна?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
29.01.2016, 21:44
Цитата Сообщение от Kayto Посмотреть сообщение
буква 'w' обязательна?
Кого спрашиваешь? Меня? Нет, от нечего делать написал...
0
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 16
29.01.2016, 21:48  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <locale>
 
using namespace std;
 
 int main()
 {
     wcout.imbue(locale("rus_rus.866"));
     wcin.imbue(locale("rus_rus.866"));
 
     wstring wstr;
     wcout << L"Введите слово (да/нет): ";
     wcin >> wstr;
     if (wstr == L"да")
         wcout << L"Всё верно!" << endl;
     else
         wcout << L"Неверно!" << endl;
 
     system("pause");
     return 0;
 }
Вот
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
29.01.2016, 21:50
Цитата Сообщение от Kayto Посмотреть сообщение
Вот
Вот: http://www.cplusplus.com/reference/iostream/
0
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 16
29.01.2016, 21:57  [ТС]
error C2679: бинарный ">>": не найден оператор, принимающий правый операнд типа "std::string" (или приемлемое преобразование отсутствует)// Вот что пишет, может я что-то не так написал?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
29.01.2016, 21:59
Цитата Сообщение от Kayto Посмотреть сообщение
может я что-то не так написал?
Откуда я знаю, как ты написал?
0
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 16
29.01.2016, 22:01  [ТС]
Сейчас сброшу

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <conio.h>
#include <cstring>
using namespace std;
 
 
 
int main(){
    setlocale(LC_ALL,"Rus");
    
    string st;
    cin >> st;
    if(st == "da"){
 
        cout << "Вы выбрали da";
    }
 
 
    _getch();
    return 0;
}
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
29.01.2016, 22:02
Цитата Сообщение от Kayto Посмотреть сообщение
Сейчас сброшу
Это код, к моему коду, какое имеет отношение?
0
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 16
29.01.2016, 22:08  [ТС]
я понял
я написал #include <cstring> а надо было <string>

Добавлено через 35 секунд
ну типа нет, но фрагмент из твоего очень мне помог
Спасибо

Добавлено через 2 минуты
C++
1
2
cout.imbue(locale("rus_rus.866"));
cin.imbue(locale("rus_rus.866"));
вот эти две команды делают так чтобы можно было с оператором if делать условия на русском?
типа
C++
1
2
3
4
if(st=="да"){
 
return st;
}
Добавлено через 1 минуту
[CPP]
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
29.01.2016, 22:18
Цитата Сообщение от Kayto Посмотреть сообщение
вот эти две команды делают так чтобы можно было с оператором if делать условия на русском?
Вот эти две команды:
Цитата Сообщение от nd2 Посмотреть сообщение
C++
1
2
wcout.imbue(locale("rus_rus.866"));
wcin.imbue(locale("rus_rus.866"));
0
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 16
29.01.2016, 22:26  [ТС]
Подскажи что нет так? Пишу Да или нет, но в любом случае выбивает else я что то не так с условием поставил?
Поставил в цикл что бы не выключалась
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
 
 
 
int main(){
    setlocale(LC_ALL,"Rus");
wcout.imbue(locale("rus_rus.866"));
wcin.imbue(locale("rus_rus.866"));
 
    string st;
    for(;;){
    cout << "Введите да или нет." << endl;
    cin >> st;
    if(st == "Да"){
 
        cout << "Вы выбрали - да." << st;
        _getch();
        break;
    }
    else if(st == "Нет"){
        cout << "Вы выбрали - нет." << endl;
            _getch();
            break;
 
    }
    else{
        cout << "Не правильный ответ!";
 
    }
    }
 
 
    _getch();
    return 0;
}
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
29.01.2016, 22:36
...
Цитата Сообщение от Kayto Посмотреть сообщение
string st;
Цитата Сообщение от nd2 Посмотреть сообщение
wstring wstr;
Цитата Сообщение от Kayto Посмотреть сообщение
cin >> st;
Цитата Сообщение от nd2 Посмотреть сообщение
wcin >> wstr;
0
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 16
29.01.2016, 22:41  [ТС]
Сработало! Слушай, я не понимаю почему надо писать перед командами "wcout" и другими, и библиотека <locale> имеет что-то общее с if(st == L"da") с этой L ведь так? Если не сложно можешь объяснить?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
29.01.2016, 22:44
Лучший ответ Сообщение было отмечено Kayto как решение

Решение

В свойствах консоли выбери шрифт: Lucida Console
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <conio.h>
#include <string>
#include <windows.h>
using namespace std;
 
int main(){
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    string st;
    for(;;){
    cout << "Введите да или нет." << endl;
    cin >> st;
    if(st == "Да"){
 
        cout << "Вы выбрали - да." << st;
        _getch();
        break;
    }
    else if(st == "Нет"){
        cout << "Вы выбрали - нет." << endl;
            _getch();
            break;
 
    }
    else{
        cout << "Не правильный ответ!";
 
    }
    }
    
    _getch();
    return 0;
}
0
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 16
29.01.2016, 22:53  [ТС]
Спасибо!
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
29.01.2016, 23:01
Цитата Сообщение от Kayto Посмотреть сообщение
я не понимаю почему надо писать перед командами "wcout" и другими
Это для вывода (или чтения: wcin) широких символов. Широкие символы - чтобы коды кириллицы в юникоде помещались.

Добавлено через 3 минуты
Цитата Сообщение от nd2 Посмотреть сообщение
L"Введите слово (да/нет): "
L перед строкой обозначает, что эта строка состоит из широких символов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.01.2016, 23:01
Помогаю со студенческими работами здесь

В символьной строке каждое слово НН заменить на слово Нижний Новгород и полученную строку вывести на экран
В символьной строке каждое слово НН заменить на слово Нижний Новгород и полученную строку вывести на экран использовать функцию Mid

Вывести слово, когда надо будет
Как вывести слово, которое можно будет вывести везде и всегда. Надо что бы можно было это слово редактировать. ...

Вывести на экран фразу "Мне n лет", учитывая что при некоторых значениях n слово "лет" надо заменить на "год"
дано натуральное число n. Вывести на экран фразу &quot;Мне n лет&quot;, учитывая что при некоторых значениях n слово &quot;лет&quot; надо заменить на...

Вывести массив на экран в виде таблицы, в конце каждой строки надо вывести минимальный элемент
Ребят , как вывести маленький элемент , что изменить в коде знак &quot;&gt;&quot; меняю на &quot;&lt;&quot; - не выходит. #include &lt;iostream&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru