Ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*' for argument '1' to size_t strlen(const char*)' [закрыт]

156
05 апреля 2019, 18:20

Вот сам код, ошибка в строке 9

int k1, k2, n;
stringstream sn;
string s;
cin >> n;
sn << n;
s = sn.str();
for (int i = 0; i < strlen(s) / 2; ++i) 
    k1 += s[i];

Работаю в Code::Blocks, компилятор GNU GCC.

Answer 1

Ну прямо стыдно отвечать на такое...

strlen(s)

Посмотрите описание - это для char*, для string используйте s.length().

Компилятор, кстати, вам все четко указал - что первый аргумент strlen... и так далее - простите, но вы читали что он написал?

READ ALSO
Разные результаты одинаковых функций

Разные результаты одинаковых функций

Почему следующая программа выводит 1 0, хотя вроде бы одинаковые проверки?

144
Разница между addressof и &amp;

Разница между addressof и &

В чём разница между std::addressof<>(var) и &var?

142
Почему не считывается файл?

Почему не считывается файл?

Есть файл со следующим содержанием текста:

195
Удаление пустых строк в конце текстового файла Java

Удаление пустых строк в конце текстового файла Java

Нужно было реализовать логику для замены строки в текстовом файлеПрименял разные схемы, но остановился на самом лаконичном, как мне кажется:

125