2011-12-21 165 views
0

我寫了下面的代碼,它取代了'|'字符串中的字符。刪除'|'從字符串

#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 = ' '; 
     } 
    } 
} 

現在我需要修改這個方法來刪除'|'字符串。我不知道該怎麼做。希望有人能給我一些提示。

+0

這氣味功課。 – 2011-12-21 08:02:39

+0

是的,這可能嗎? – 2011-12-21 08:02:54

+2

是的,這很可能是一項家庭作業。 – jlliagre 2011-12-21 08:04:33

回答

4

使用字符指針旅遊的輸入和修改:

#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'; 
} 
+0

感謝您的快速響應和答案。操作指針的巧妙方式。真的很感激它。 – 2011-12-21 08:29:51