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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ученик кода
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 76
#1

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

16.08.2014, 18:16. Просмотров 305. Ответов 5
Метки нет (Все метки)

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++
Помогите: Дано рядок S. Найти любое слово которое начинаться на букву а и заканчивается на букву а. Если таких слов нет, то...

Найти количество слов в строке; найти самое длинное слово, заканчивающееся на заданную букву - C++
Дана строка текста, в которой слова разделены пробелами. Необходимо: - вычислить количество слов в строке; ...

Найти в строке слово с окончанием на букву 'а' - C++
дано строка. Надо напечатать слово с окончанием а Ввод данных: My Name Baxa Вывод данных: Baxa

Найти точку в строке и следующую букву выводить с прописной - C++
помогите разобраться с проблемой,программа должна находить точку в строке и следующую букву выводить с прописной. вот текст программы: ...

Найти в строке букву Х, и посчитать сколько раз повторяются символы + и - - C++
n-натуральное число, даны символы S1,S2,...Sn. Найти в данном символе букву Х, и посчитать сколько раз повторяются символы + и -

Найти самое короткое слово в строке, которое заканчивается на букву «а» - C++
Помогите с написанием алгоритма. Заранее благодарен. Дана строка текста, в которой слова разделены пробелами и запятыми. Необходимо: ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BlackIce
310 / 172 / 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
2332 / 1958 / 192
Регистрация: 03.07.2012
Сообщений: 7,021
Записей в блоге: 1
16.08.2014, 18:57 #3
Даже 'а' и 'р' не находит?
Ученик кода
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 76
16.08.2014, 19:08  [ТС] #4
BlackIce, спасибо, за ссылку. Уже читаю.

zer0mail, 'а' не нашло, а вот 'р' нашло. Но это же не серьезно ))
zer0mail
2332 / 1958 / 192
Регистрация: 03.07.2012
Сообщений: 7,021
Записей в блоге: 1
16.08.2014, 23:04 #5
Цитата Сообщение от Ученик кода Посмотреть сообщение
zer0mail, 'а' не нашло, а вот 'р' нашло. Но это же не серьезно ))
Это означает, что строка в кодировке 1251, а ввод в кодировке 866.
Vtulhu
370 / 376 / 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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2014, 00:07
Привет! Вот еще темы с ответами:

Найти в строке букву, которая встречается большее число раз - C++
Всем привет. У меня вот такая задача: Две строки инициализировать в программе. Составить из них третью, дважды чередуя содержимое заданных...

В строке, состоящей из слов, найти и вывести на экран все слова, начинающиеся на букву w - C++
В строке , состоящей из слов , найти и вывести на экран все слова , начинающиеся на букву w .

Найти наиболее часто встречающуюся букву и также вывести на экран в отдельной строке - C++
Помогите с прогой. : В произвольном тексте (взятом из файла), содержащем не более 10 строк, в каждой строке не более 80 символов, найти и...

В строке, состоящей из слов и знаков препинания(пробел.:,!?-;),найти слово максимальной длины, не содержащее заданную букву - C++
В строке, состоящей из слов и знаков препинания(пробел.:,!?-;), найти слово максимальной длины, не содержащее заданную букву/


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.08.2014, 00:07
Ответ Создать тему
Опции темы

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