Функция удаления пробелов в строке - 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);

Объяснение кода листинга программы

  1. В данной функции происходит удаление всех пробелов из строки, переданной в качестве первого аргумента, и сохранение результата в строке, переданной в качестве второго аргумента.
  2. Присваивается значение 0 (или '\0') целочисленной переменной k, которая будет использоваться как счетчик для строки s2.
  3. Используется цикл for для прохода по всем символам строки s1. Он начинается с i=0 и продолжается до тех пор, пока s1[i] не станет равным 0 (или '\0').
  4. Внутри цикла проверяется, является ли текущий символ пробелом. Если нет, то он копируется в строку s2 с помощью индекса j, который увеличивается на 1 после каждой копии.
  5. После окончания цикла, в строку s2 добавляется символ 0 (или '\0'), чтобы завершить строку.
  6. В функции main() запрашивается ввод строки с помощью функции gets().
  7. Введенная строка передается в функцию del() вместе со второй пустой строкой.
  8. Результат работы функции del() выводится на экран с помощью функции printf().

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы