Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
AlexCH1
1 / 1 / 1
Регистрация: 22.01.2016
Сообщений: 69
1

Сравнение символьных строк

09.02.2016, 18:51. Просмотров 923. Ответов 20
Метки нет (Все метки)

Подскажите пожалуйста какие сделать в программе исправления чтобы начало работать условие и в случае ввода другого имени выводилось бы" Привет( введенное имя)"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
    char name;
 
    setlocale(LC_ALL, "russian");
    
    cout << "Введие имя\t";
    cin >> name;
    if (name='Шура')
        cout << "Как дела";
    else 
        cout  << "Привет"<<" "<<name<< endl;
    _getch();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2016, 18:51
Ответы с готовыми решениями:

Сравнение двух символьных строк
условие задачи состоит в том,чтобы написать программу для сравнения двух...

Сравнение символьных буфферов (массивов)
Добрый всем день. Заранее прошу прощения, если такая тема уже существует или...

Сравнение двух символьных массивов - char C++
Доброго времени суток! Столкнулся с проблемой кода программы. Мне нужно...

Задача на обработку символьных данных (сравнить строку введенным с клавиатуры, и вывести результат сравнение
Здравствуйте. Задача на обработку символьных данных такая: Сравнить...

Массив из n символьных строк
Здравствуйте, Уважаемые форумчане :) Есть такое вот задание: Задан массив...

20
nd2
2835 / 2403 / 1057
Регистрация: 29.01.2016
Сообщений: 8,046
09.02.2016, 18:56 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
char name[20];
 
setlocale(LC_ALL, "russian");
 
cout << "Введите имя\t";
cin >> name;
if (strcmp(name, "Шура") == 0)
     cout << "Как дела";
else 
    cout << "Привет"<<" "<<name<< endl;
_getch();
return 0;
}
0
AlexCH1
1 / 1 / 1
Регистрация: 22.01.2016
Сообщений: 69
09.02.2016, 19:00  [ТС] 3
Что обозначает цифра[20] и strcmp(name, "Шура") == 0)
0
ThePlague
102 / 102 / 99
Регистрация: 30.06.2015
Сообщений: 272
09.02.2016, 19:00 4
AlexCH1,
C++
1
if(name=='Шура')
хотя это не поможет...вы пытаетесь записать в переменую типа чар(один символ) строку...массив символов....
1
nd2
2835 / 2403 / 1057
Регистрация: 29.01.2016
Сообщений: 8,046
09.02.2016, 19:02 5
Цитата Сообщение от AlexCH1 Посмотреть сообщение
Что обозначает цифра[20]
Размер массива символов.
Цитата Сообщение от AlexCH1 Посмотреть сообщение
Что обозначает ... strcmp(name, "Шура") == 0)
Функция сравнивает две Си-строки, если равны, то возвращает 0.
1
AlexCH1
1 / 1 / 1
Регистрация: 22.01.2016
Сообщений: 69
09.02.2016, 19:12  [ТС] 6
Программу проверил в случае ввода имени Шура вопрос" как дела?" не задает а выскакивает "Привет ?га"
0
nd2
2835 / 2403 / 1057
Регистрация: 29.01.2016
Сообщений: 8,046
09.02.2016, 19:17 7
AlexCH1, у тебя нет русского ввода (это только для вывода: setlocale(LC_ALL, "russian");). Проверь, для начала, на английском. Если всё работает, то ищи на форуме темы про ввод на русском.

Добавлено через 1 минуту
Может быть здесь есть: Русские шрифты в консоли
1
Croessmah
09.02.2016, 20:56
  #8
 Комментарий модератора 
AlexCH1, не игнорируйте это сообщение.

Вы неоднократно нарушили правила форума,
поэтому прошу Вас ознакомиться с правилами форума
и более их не нарушать.
Также ознакомьтесь с темами:
как оформить код при помощи тэгов,
рекомендации по созданию тем
порядок именования тем

В общем случае, для оформления кода,
выделите код и нажмите на кнопку соответствующего языка (см. изображение)


Исправлять за Вами все Ваши посты никому не в радость.
В случае дальнейших нарушений будут приняты соответствующие меры.
Спасибо.
0
AlexCH1
1 / 1 / 1
Регистрация: 22.01.2016
Сообщений: 69
10.02.2016, 08:24  [ТС] 9
Подскажите пожалуйста почему не работает else ветвь .При вводе любого имени на экран выводится "Привет Шура"
ищу ошибку со вчерашнего вечера ни чего не получается
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
    char name;
        setlocale(LC_ALL, "Russian");
    
        cout << "Введите Ваше имя\t";
    cin >> name;
    if (char(name)= 'Шура')
    {
        cout << "Как дела Шура";
    }
    else
        cout << "Привет " << name << endl;
    
    _getch();
    return 0;
}
0
zss
Модератор
Эксперт С++
7404 / 6796 / 4299
Регистрация: 18.12.2011
Сообщений: 17,949
Завершенные тесты: 1
10.02.2016, 08:37 10
C++
1
2
3
4
5
6
7
    char name[100];
        setlocale(LC_ALL, "Russian");
    
        cout << "Введите Ваше имя\t";
    cin >> name;
    if (strcmp(name, "Шура")==0)
....
0
Kerry_Jr
Эксперт PHP
2210 / 2006 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
10.02.2016, 08:38 11
AlexCH1, потому что char - это 1 символ, это раз; в одинарных кавычках должен быть тоже 1 символ, это два; для сравнения строк есть функция strcmp, которая возвращает ноль, если строки одинаковы, и отличное от нуля значения, если строки разные, это три.
0
AlexCH1
1 / 1 / 1
Регистрация: 22.01.2016
Сообщений: 69
10.02.2016, 08:41  [ТС] 12
Спасибо попробую Ваш вариант
1
AlexCH1
1 / 1 / 1
Регистрация: 22.01.2016
Сообщений: 69
10.02.2016, 22:34  [ТС] 13
Продолжаю заниматься программой
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
char name[20];
 
setlocale(LC_ALL, "russian");
 
cout << "Введите имя\t";
cin >> name;
if (strcmp(name, "Шура") == 0)
     cout << "Как дела";
else 
    cout << "Привет"<<" "<<name<< endl;
_getch();
return 0;
}
перепробовал все предложенные варианты все равно не работает уже создал подобную на паскале Не уже ли на с++все так сложно?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
var
  name: string;
 
begin
  write('Введите имя: ');
  read (name);
  
  if name = 'Шурик' then
    write('Как дела ?') 
  else
    write('Привет, ', name, '.');
end.
0
Ferrari F1
792 / 522 / 156
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
10.02.2016, 22:38 14
AlexCH1,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <iomanip>
using namespace std;
 
int main(void)
{
    system("chcp 1251");
    system("cls");
    cout << "Введите имя" << endl;
    char name[20];
    cin >> name;
    if (!strcmp(name, "Шура"))
        cout << "Как дела" << endl;
    else
        cout << "Привет " << name << endl;
    system("pause");
    return 0;
}
1
nd2
2835 / 2403 / 1057
Регистрация: 29.01.2016
Сообщений: 8,046
10.02.2016, 22:45 15
Цитата Сообщение от AlexCH1 Посмотреть сообщение
перепробовал все предложенные варианты
Например? Русский ввод так и не сделал.
0
AlexCH1
1 / 1 / 1
Регистрация: 22.01.2016
Сообщений: 69
10.02.2016, 22:49  [ТС] 16
Я честно говоря новичок в этом поэтому я там ни чего не понял.
0
Ferrari F1
792 / 522 / 156
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
10.02.2016, 22:49 17
AlexCH1,
Цитата Сообщение от nd2 Посмотреть сообщение
Например? Русский ввод так и не сделал.
Цитата Сообщение от AlexCH1 Посмотреть сообщение
Я честно говоря новичок в этом поэтому я там ни чего не понял.
Русские шрифты в консоли
1
nd2
2835 / 2403 / 1057
Регистрация: 29.01.2016
Сообщений: 8,046
10.02.2016, 22:54 18
Цитата Сообщение от AlexCH1 Посмотреть сообщение
поэтому я там ни чего не понял
Ferrari F1, эта ссылка и есть то самое "там".
1
AlexCH1
1 / 1 / 1
Регистрация: 22.01.2016
Сообщений: 69
10.02.2016, 23:00  [ТС] 19
В этой программе все выводится на русском языке.
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    cout << "Привет мир";
    system("pause");
    return 0;
}
0
nd2
2835 / 2403 / 1057
Регистрация: 29.01.2016
Сообщений: 8,046
10.02.2016, 23:02 20
В свойствах консоли выбрать шрифт: Lucida Console.
Установка шрифта Lucida Console
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<conio.h>
#include <Windows.h>
using namespace std;
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
 
char name[20];
cout << "Введите имя\t";
cin >> name;
if (strcmp(name, "Шура") == 0)
     cout << "Как дела";
else 
    cout << "Привет"<<" "<<name<< endl;
_getch();
return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от AlexCH1 Посмотреть сообщение
все выводится на русском языке
Ввод от вывода отличаешь?
Цитата Сообщение от nd2 Посмотреть сообщение
Русский ввод так и не сделал.
1
10.02.2016, 23:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2016, 23:02

Массивы символьных строк
В строке, содержащей последовательность слов, найти конец предложения,...

Множества символьных строк
Нужно создать в С++ класс множеств символьных строк и реализовать добавление...

С++ Построение символьных строк
Здравствуйте! Помогите с задачей на языке С ++, буду благодарен &quot;&quot; &quot;В...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru