Итак, мне нужно вставить пробел после пробела в строке символов, например:
у нас есть строка: hello world
, и функция должна возвращать hello world
hello world something else
=> hello world something else
hello world
=> hello world
(4 пробела) (не обязательно, но предпочтительно)
как ?? (обязательно нужно использовать строку символов)
мое решение (оно не работает правильно, потому что вставляет только 1 пробел)
из hello world something
возвращает hello world something
:
#include <iostream>
#include <string>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
char* addSpaces(char* str) {
char* p = strchr(str, ' ');
if (p) {
p++;
int n = strlen(p);
p[n + 1] = 0;
while (n) {
p[n] = p[n - 1];
n--;
}
*p = ' ';
}
return str;
}
int main(void) {
const int stringCount = 1;
const int c = 500;
char cstring[stringCount][c];
string str[stringCount];
for (int i = 0; i < stringCount; i++) {
cout << "Enter " << i + 1 << ". line: ";
cin.getline(cstring[i], c);
str[i] = cstring[i];
}
for (int i = 0; i < stringCount; i++) {
cout << "First function result with char in parameter: ";
char* result = addSpaces(cstring[i]);
cout << result << endl;
}
}