Выводит непонятные символы в консоль

Есть функция удаляющая повторяющиеся пробелы из строки, в консоль выводит непонятную строку, пробовал отладку, функция возвращает нормальное значение,но выводит фигню.в чем ошибка и как исправить? 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 за указание на причину ошибки.

→ Ссылка