#c #string #scope #size #palindrome
Вопрос:
я написал код для проверки палиндрома, но он выдает ошибку в командной строке и в онлайн-компиляторе, но я выполнил код в другом онлайн-компиляторе, где он успешно скомпилировался и дал желаемый результат. ошибка: палиндром.cpp:9:26: ошибка: «размер» не был объявлен в этой области
#include<iostream>
using namespace std;
int main()
{
string num_str = "";
cin >> num_str;
string new_str = "";
for(int x = (size(num_str)-1); x >= 0; x--){
new_str = num_str[x];
}
cout << (num_str == new_str ? "palindrome" : "Non-palindrome");
return 0;
}```
Комментарии:
1.
size
не объявляется. Чего вы ожидаете отsize(num_str)
этого ? Ты это имел в видуnum_str.size()
?2. Недостающий
#include <string>
Ответ №1:
Чтобы получить размер строки, вы используете функцию-член. Измените эту строку:
for(int x = (size(num_str)-1); ... )
Для
for(int x = num_str.size()-1; ... )
Кроме того, вам, вероятно, следует включить :
#include <iostream>
#include <string>
// ...
Комментарии:
1. Это прекрасно сработало без добавления
# include <string>
.2. Вероятно, это связано с тем, что iostream включает строку. Однако, поскольку это отличается от компилятора к компилятору, рекомендуется соблюдать осторожность.