Выводит непонятные символы в консоль
Есть функция удаляющая повторяющиеся пробелы из строки, в консоль выводит непонятную строку, пробовал отладку, функция возвращает нормальное значение,но выводит фигню.в чем ошибка и как исправить? Visual Studio Community 2019;
#include <iostream>
using namespace std;
char* functfou(char* s)
{
int check = 0, count = 0;
int i = 0;
char res[256];
while (s[i] != '\0') {
if (s[i] != ' ')
{
res[count] = s[i];
count++;
check = 1;
}
else if (s[i] == ' ' && check != 0) {
res[count] = ' ';
count++;
check = 0;
}
i++;
}
res[count] = '\0';
return res;
}
int main()
{
system("chcp 1251");
system("cls");
char s[256];
cout << "\tВведите строку: "; cin.get(s, 256);
cout << "\t\tстрока после изменений = " << functfou(s) << endl;
}
Ответы (1 шт):
Автор решения: Arkadek
→ Ссылка
Создал глобальную переменную res, функцию из char* переделал в void. убрал return res; в main заменил cout << "\t\tстрока после изменений = " << functfou(s) << endl; на cout << "\t\tстрока после изменений = "<< res << endl. Спасибо pavel за указание на причину ошибки.

