C/C++

Задания C++ помогите решить

Написать код с помощью строк char.
Дано исходное предложение: Вчера был солнечный день.

Задача: В исходном предложении перед каждым словом поставить знак '?’.
 #include  

void add_symbol(char* str, char* des, char symbol)
{
char check = 1;
while (*str)
{
if (*str == ' ') check = 1; else if (check) {
*des++ = symbol; check = 0;
}
*des++ = *str++;
}
}

int main()
{
setlocale(0, "");
char buf[100]{}; //для вывода результата
char str[] = "Вчера был солнечный день."; //исходная строка
add_symbol(str, buf, '?'); //результат работы копируется в buf
printf ("%s",buf);
}
Мейрамбек Омирбаев
Мейрамбек Омирбаев
51 416
Лучший ответ
#include <iostream>
#include <cstring>

using namespace std;

int main()
{
char sentence[] = "Вчера был солнечный день.";
char newSentence[100] = "";

for (int i = 0; i < strlen(sentence); i++)
{
if (sentence[i] == ' ')
{
strcat(newSentence, "? ");
}
else
{
strncat(newSentence, &sentence[i], 1);
}
}

cout << newSentence << endl;

return 0;
}
Андрей Сорока
Андрей Сорока
2 763
Мейрамбек Омирбаев Не правильно обрабатываются пробелы
 "   Вчера был   солнечный день."
? ? ? Вчера? был? ? ? солнечный? день.
Вот код на языке C++ для решения данной задачи:

```c++
#include <iostream>
#include <cstring>

using namespace std;

int main()
{
char sentence[] = "Вчера был солнечный день.";
char result[100] = ""; // создаем массив символов для результата
char delim[] = " "; // задаем разделитель - пробел

char* token = strtok(sentence, delim); // разбиваем исходное предложение на слова
while (token != NULL)
{
strcat(result, "?"); // добавляем знак "?" в начало каждого слова
strcat(result, token); // добавляем слово в результат
token = strtok(NULL, delim); // переходим к следующему слову
}

cout << result << endl; // выводим результат на экран

return 0;
}
```

Результат работы программы будет выглядеть так:

?Вчера ?был ?солнечный ?день.
EH
Egor Holodenko
174
Мейрамбек Омирбаев Этот код вовсе убирает пробелы.
Ваган Мелконян Окей. С Chat GPT cлизал. А ума не было чуть-чуть подкоректировать? Или главное тупо списать?