Ввести строку, заменить интервалы между словами на 2 пробела - C (СИ) (76700)
Формулировка задачи:
Ввести строку, заменить интервалы между словами на 2 пробела.
Попробовал сосчитать сколько всего символов и переместить их все вправо пока символ после пробела не станет тоже пробелом. Подскажите где ошибка:
#include "stdafx.h" #include "stdio.h" #include "string.h" int main() { char str[100]; int i, n; printf("Vvesti stroku: \n"); gets(str); for(i=0; i<100 ; i++) { if(str[i]=='\0') { n=(i-1); } } for(i=0; i<100; i++) for(n; n<100; n--) if(str[i]==' ') { while(str[i+1] != ' ') { str[n]=str[n-1]; } } printf("\n stroka: %s \n", str); return(0); }
помогите пожалуйста
Решение задачи: «Ввести строку, заменить интервалы между словами на 2 пробела»
textual
Листинг программы
#include "stdio.h" #include "string.h" int main() { char str[100]; int i, length, n; printf("Vvesti stroku: \n"); gets(str); for(i=0; i<100 ; i++) { if(str[i]=='\0') { length=(i-1); break; } } for(i=0; i<length; i++) if(str[i]==' ') { n = length + 2; while(str[i+1] != ' ') { str[n]=str[n-1]; n--; } length++; i++; } printf("\n stroka: %s \n", str); return(0); }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Объявляем переменные:
- str - массив символов для хранения введенной строки
- i, length, n - целочисленные переменные для работы со строкой
- Выводим сообщение и призыв к вводу строки
- С помощью функции gets() считываем строку из стандартного ввода и сохраняем её в массиве str
- В цикле проходим по всем элементам массива str (кроме последнего, т.к. последний элемент массива - это нулевой символ)
- Проверяем, является ли текущий символ нулевым символом. Если да, то:
- сохраняем длину строки (исключая нулевой символ) в переменную length
- выходим из цикла
- В цикле проходим по всем пробелам в строке (т.е. по всем символам, которые равны ' ')
- Если текущий символ равен ' ', то:
- увеличиваем длину строки на 2 (т.к. вместо одного пробела мы вставляем два)
- в цикле сдвигаем все символы, следующие за текущим пробелом, на один символ вправо (т.к. мы добавили пробел)
- уменьшаем значение переменной length на 1 (т.к. мы только что обработали один пробел)
- Выводим измененную строку
- Возвращаем 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д