Удалить '|'из строки - PullRequest
       4

Удалить '|'из строки

0 голосов
/ 21 декабря 2011

Я написал следующий код, который заменяет '|' символы из строки.

#include <stdio.h>
#include <stdlib.h>

void remove_pipes(char*);

main (int argc, char **argv)
{

char string1[] = "|||||||||||||";
remove_pipes(string1);
printf("String1 = %s", string1);
char string2[] = "h|e|l|l|o";
remove_pipes(string2);
printf("String2 = %s", string2);
}

void remove_pipes(char* input)
{
  for(; *input; input++)
  {
      if(*input == '|')
      {
          *input = ' ';
      }
  }
}

Теперь мне нужно изменить этот метод, чтобы удалить '|' символ из строки. Я не уверен, как это сделать. Надеюсь, кто-нибудь может дать мне подсказку.

1 Ответ

4 голосов
/ 21 декабря 2011

Используйте символьный указатель для перемещения ввода и изменения его:

#include <stdio.h>
#include <stdlib.h>

void remove_pipes(char*);

main (int argc, char **argv)
{

    char string1[] = "|||||||||||||";
    printf("String1 = %s\n", string1);
    remove_pipes(string1);
    printf("String1 = %s\n", string1);
    char string2[] = "h|e|l|l|o";
    printf("String2 = %s\n", string2);
    remove_pipes(string2);
    printf("String2 = %s\n", string2);
}

void remove_pipes(char* input)
{
    unsigned idx = 0;
    char* aux = input;

    for(; *input; input++)
    {
        if (*input != '|')
        {
            *(aux + idx++) = *input;
        }
    }
    *(aux + idx) = '\0';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...