ошибка: запрос на элемент ’empty’ в ‘s’, который не относится к классу типа ‘const char’ 65 | if (s.empty() || s[s.size() — 1] == ‘.’)

#c #c 11 #c 14

#c #c 11 #c 14

Вопрос:

Я читаю книгу C C Primer 5th Edition в главе 4 есть блок кода

 for (const auto amp;s : text)
{
    cout << s << " " << typeid(s).name() << " ";
    if (s.empty() || s[s.size() - 1] == '.')
        cout << endl;
    else
        cout << " "; // otherwise just separate with a space
}
 

Когда я запускаю этот код и использую текстовую строку, он выдает мне ошибку, и то же самое, когда я использую char*

 `op.cpp:65:9: error: request for member 'empty' in 's', which is of non-class type 'const   char'
 

Комментарии:

1. s является a char , у него нет никаких функций.

2. Похоже text std::vector<std::string> , это должно сработать.

3. Спасибо, это работает именно так, если я это сделаю, vector<string> text = {«H», «e», «l», «l», «o», «.». «W», «o», «r», «l», «d», «!»};