Заменить пустые строки, состоящие из одних пробелов, строками, содержащими минимальное количество табуляций - 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'; // а здесь снова. И того у тебя случайный символ из памяти.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д