Форум программистов, компьютерный форум CyberForum.ru

Не получается найти букву в строке - C++

Восстановить пароль Регистрация
 
Ученик кода
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 76
16.08.2014, 18:16     Не получается найти букву в строке #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
int main()
{
    char str[34]={"абвгдеёжзийклмнопрстуфхцчшщъыьэюя"}; //33 буквы + знак окончания
    char bykva;
    cout << "Vvedi 1 bykvy " << endl;
    cin >> bykva;
    
    for (int i = 0; i < 33; i++) //ищем введенную букву в массиве
    {
        if(str[i]==bykva)
        {
            cout << "Найдено !";
        }
    }
return 0;
}
Условие которое я прописал в цикле, почему то не срабатывает. Любую букву из русского алфавита вводишь, цикл не находит ее.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2014, 18:16     Не получается найти букву в строке
Посмотрите здесь:

Как определить на какую букву начинаются слова в строке??? C++
В строке, состоящей из слов и знаков препинания(пробел.:,!?-;),найти слово максимальной длины, не содержащее заданную букву C++
Задание по С++(Вычеркнуть в данной строке каждую k-ю букву. ) C++
чёт никак не получается присвоить переменной букву! C++
В строке, состоящей из слов, найти и вывести на экран все слова, начинающиеся на букву w C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BlackIce
309 / 171 / 64
Регистрация: 18.01.2014
Сообщений: 387
16.08.2014, 18:28     Не получается найти букву в строке #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Кодировка исходного текста программы и консоли не совпадают.
Попробуйте сначала ввести строку с клавиатуры, а потом в ней поискать:

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>
using namespace std;
int main()
{
    char str[34];
    char bykva;
    cout << "enter string: ";
    cin.getline(str, 34);
    int n = cin.gcount();
    cout << "enter letter: ";
    cin >> bykva;
   
    for (int i = 0; i < n; i++) //ищем введенную букву в массиве
    {
        if(str[i]==bykva)
        {
            cout << "Found!";
            break;
        }
    }
    return 0;
}
Или просто сохранить ваш исходник в кодировке cp866.

Рекомендую ознакомится с темой Русские шрифты в консоли
zer0mail
2177 / 1860 / 187
Регистрация: 03.07.2012
Сообщений: 6,621
Записей в блоге: 1
16.08.2014, 18:57     Не получается найти букву в строке #3
Даже 'а' и 'р' не находит?
Ученик кода
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 76
16.08.2014, 19:08  [ТС]     Не получается найти букву в строке #4
BlackIce, спасибо, за ссылку. Уже читаю.

zer0mail, 'а' не нашло, а вот 'р' нашло. Но это же не серьезно ))
zer0mail
2177 / 1860 / 187
Регистрация: 03.07.2012
Сообщений: 6,621
Записей в блоге: 1
16.08.2014, 23:04     Не получается найти букву в строке #5
Цитата Сообщение от Ученик кода Посмотреть сообщение
zer0mail, 'а' не нашло, а вот 'р' нашло. Но это же не серьезно ))
Это означает, что строка в кодировке 1251, а ввод в кодировке 866.
Vtulhu
369 / 375 / 96
Регистрация: 12.08.2011
Сообщений: 1,610
17.08.2014, 00:07     Не получается найти букву в строке #6
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <string.h>     // strpbrk
#include <stdio.h>      // puts
 
void say(const char* const str, const char* const abc)
{
    puts( strpbrk(str, abc)? "Found!" : "Not found..." );
}
 
int main(void)
{
    const char* const abc = "abc";
    say("abracadabra", abc);
    say("xyz", abc);
    say("123", abc);
    return 0;
}
Yandex
Объявления
17.08.2014, 00:07     Не получается найти букву в строке
Ответ Создать тему
Опции темы

Текущее время: 10:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru