Удалить пробел из конкретного случая в строке - PullRequest
0 голосов
/ 02 декабря 2018

Я сделал простую программу, которая удаляет все пробелы из строки, но я хочу, чтобы это была программа для удаления пробела из начала строки , если есть, и другая программа для удаления пробела из конец строки

Надеюсь, это имеет смысл

Вот моя программа на c, которая удаляет пробелы из всей строки, давая

#include<stdio.h>


int main()
{
    int i,j=0;
    char str[50];
    printf("Donnez une chaine: ");
    gets(str);

    for(i=0;str[i]!='\0';++i)
    {
        if(str[i]!=' ')
            str[j++]=str[i];
    }

    str[j]='\0';
    printf("\nSans Espace: %s",str);

    return 0;
}

1 Ответ

0 голосов
/ 02 декабря 2018

При подходе ниже

  1. Сначала удаляются первые белые символы.
  2. Затем сдвигаются строки.
  3. Затем удаляются последние белые символы.

     char *beg = str;
     char *travel = str;
    
     /*After while loop travel will point to non whitespace char*/
      while(*travel == ' ') travel++;
    
    /*Removes the leading white spaces by shifting chars*/
     while(*beg = *travel){
         beg++;
         travel++;
     }
    
    /* travel will be pointing to \0 char*/
     if(travel != str) {
       travel--;
       beg--;
     }
    
    /*Remove the trailing white chars*/
     while(*travel == ' ' && travel != beg) travel--;
    
    /*Mark the end of the string*/
    if(travel != str) *(travel+1) = '\0';
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...