Функция удаления пробелов в строке - C (СИ)
Формулировка задачи:
Помогите найти ошибку:
void del(char *s1,char *s2) { int i,j,k=0; for(i=j=0;s1[i]!='0';i++) { if(s1[i]!=' ') s2[j++]=s1[i]; } s2[j]='\0'; }
Решение задачи: «Функция удаления пробелов в строке»
textual
Листинг программы
void del(char *s1,char *s2) { int i,j,k=0; for(i=j=0;s1[i]!='0';i++) { if(s1[i]!=' ') s2[j++]=s1[i]; } s2[j]='\0'; } int main() { char s1[50]; char s2[50]; puts("Enter a string:" ); gets(s1); del(s1,s2); printf("New string: %s",s2);
Объяснение кода листинга программы
- В данной функции происходит удаление всех пробелов из строки, переданной в качестве первого аргумента, и сохранение результата в строке, переданной в качестве второго аргумента.
- Присваивается значение 0 (или '\0') целочисленной переменной k, которая будет использоваться как счетчик для строки s2.
- Используется цикл for для прохода по всем символам строки s1. Он начинается с i=0 и продолжается до тех пор, пока s1[i] не станет равным 0 (или '\0').
- Внутри цикла проверяется, является ли текущий символ пробелом. Если нет, то он копируется в строку s2 с помощью индекса j, который увеличивается на 1 после каждой копии.
- После окончания цикла, в строку s2 добавляется символ 0 (или '\0'), чтобы завершить строку.
- В функции main() запрашивается ввод строки с помощью функции gets().
- Введенная строка передается в функцию del() вместе со второй пустой строкой.
- Результат работы функции del() выводится на экран с помощью функции printf().
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д