Проверка слов строки на наличие буквы, на которую кончается и начинается

102
08 января 2021, 12:40

Дана строка, состоящая из символов латинского алфавита, разделенных пробелами (одним или несколькими). Определить количество слов, которые начинаются и заканчиваются одной и той же буквой. Не знаю, как исправить траблы :(

#include <iostream> 
#include <clocale> 
#include <cstdlib>
#include <string>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    string ss, b;
    int k = 0;
    cout << "Введите букву, которая на которую должно начинаться и заканчиваться слово: ";
    cin >> b;
    cout << "Ввeдите текст латиницей (ctrl^Z - в отдельной строке строке для завершения):" << endl;
    while (cin >> ss)
    {
        char s = ss[0];
        if (s == b || s == b)
            k++;
    }
    cout << "Количество слов,начинающихся на букву К:" << k << endl;
    system("pause");
    return 0;
}
Answer 1

Кажется в вашем задании не говорится о сравнении с каким то символом, а нужно просто смотреть, чтобы первый и последный были одинаковы, поэтому (один из вариантов решения):

string s, temp;     
getline(cin, s); //ввод всей строки 
istringstream ss(s);
size_t k = 0;
while (ss >> temp)
    if (temp.front() ==  temp.back())
        ++k;
cout << endl << k;
READ ALSO
Label с HyperLink

Label с HyperLink

У меня есть QLabel, его размер 400x400 и в тексте прописано:

111
C++ Вытащить из Char цифры, написанные через пробел

C++ Вытащить из Char цифры, написанные через пробел

есть char b[50] = "11 2 6" или он может быть записан char b[50] = "1 23 6"

119
Как сделать проверку на валидацию перед сабмитом а после показать блок успешной отправки

Как сделать проверку на валидацию перед сабмитом а после показать блок успешной отправки

Надо сделать валидацию перед сабмитом, а после показать блок успешной отправки

102