Заменить пустые строки, состоящие из одних пробелов, строками, содержащими минимальное количество табуляций - C (СИ) (72572)
Формулировка задачи:
Задача 1.21. Напишите программу entab, которая бы заменял пустые строки, состоящие из одних пробелов, строками, содержащими минимальное количество табуляций и дополнительных пробелов, - так, чтобы заполнить то же пространство.
При запуске, например, на тесте "example" выводом будет
example
*непонятный символ*. Курсор стоит на этой позиции.
аналогично с другими вводами. В чём может быть причина?
#include <stdio.h> int main () { int c,numsp,nospace,i,j; char s[100]; nospace = 1; numsp = 0; j = 0; while ((c = getchar()) != EOF) { s[j] = c; j++; if (c != ' ' && c != '\n') nospace = 0; if (c == ' ') numsp++; if (c == '\n') { if (nospace == 1) { for (i = 1; i <= (numsp / 3); i++) putchar ('\t'); for (i = 1; i <= (numsp % 3); i++) putchar (' '); putchar ('\n'); } if (nospace == 0) { s[j+1] = '\0'; printf ("%s",s); } nospace = 1; numsp = 0; j = 0; } } return 0; }
Решение задачи: «Заменить пустые строки, состоящие из одних пробелов, строками, содержащими минимальное количество табуляций»
textual
Листинг программы
s[j] = c; j++; // здесь ты уже инкрементировал счетчик s[j+1] = '\0'; // а здесь снова. И того у тебя случайный символ из памяти.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д