Сравнить первую букву слова с последней

Рейтинг: 0Ответов: 1Опубликовано: 28.02.2015

Здравствуйте.

Задача сравнить первую букву слова с последней.

Пример: anna начинается на букву a и заканчивается на букву a итаких слов у нас 2.

Благодарю за ответ. :)

void main(){

char str[] = "hello to anna annna";

int total = strlen(str);
int counter = 0;

char temp = str[0];
for (int i = 0; i < total; i++){

    if (str[i] == ' '){
        if (str[0] == str[i-1]){

            counter++;
            i = 0;
        }

    }
}

printf("%d",counter);

}

Ответы

▲ 2Принят
#include <iostream>
#include <string>

using namespace std;

int main()
{
    char str[] = "hello to anna annna and ana test to  ana  ";
    string s; // сюда мы будем помещать найденные слова
    int count = 0; // счетчик слов с одинаковой первой и последней буквой

    // разделяем на слова и помещаем их в строку
    for (size_t i = 0; i < strlen(str); i++){
        if (str[i] != ' ')       // если это не пробел
            s.push_back(str[i]); // помещаем символы в строку
        else {
            cout << "->" << s << "<-" << endl; // отладка
            // сравниваем первую и последнюю букву найденного слова
            if ((s.size() != 0) && (s[0] == s[s.size() - 1])){
                ++count;
            }
            s.clear();
        }
    }

    // проверяем первую и последнюю букву после последней итерации
    if ((s.size() != 0) && (s[0] == s[s.size() - 1]) && (s[s.size() - 1] != ' ')){
        cout << "->" << s << "<-" << endl; // отладка
        ++count;
    }

    cout << count << endl; // результат

    return 0;
}