@Leytox

Как поставить пробел после запятой в строке?

Нужно вставить 1 пробел после каждой запятой, если он отсутствует перед следующим словом.
#include <stdio.h>
#include <string.h>
void Insert(char sentence[256], int pos) {
  for (int i = strlen(sentence); i >= pos; i--) {
    sentence[i + 1] = sentence[i];
    sentence[pos] = ' ';
  }
}
int main() {
  char sentence[256];
  printf("Insert text: ");
  fgets(sentence, sizeof(sentence), stdin);
  for (int i = 0; i < strlen(sentence); i++)
    if (sentence[i] == ',' && sentence[i + 1] != ' ')
      Insert(sentence, i);
  printf("\nYour edited text: %s\n", sentence);
  return 0;
}

В результате выполнения, программа всё же добавляет пробел, но удаляет запятую

6335b146d76a9057736964.png
В чём же проблема?
  • Вопрос задан
  • 471 просмотр
Решения вопроса 1
@Leytox Автор вопроса
for (int i = strlen(sentence); i > pos; i--) {
sentence[i + 1] = sentence[i];
}
sentence[pos] = ',';
sentence[pos + 1] = ' ';
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
В чём же проблема?
for (int i = strlen(sentence); i >= pos; i--) {
    sentence[i + 1] = sentence[i];
    sentence[pos] = ' ';
  }

Должно быть
for (int i = strlen(sentence); i > pos; i--) {
    sentence[i + 1] = sentence[i];
  }
  sentence[pos + 1] = ' ';
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы