2011-12-21 16 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

それは宿題として匂い。 –

+0

はい、可能ですか? –

+2

はい、宿題がかなり可能です。 – jlliagre

答えて

4

は、入力を旅行して、それを修正するためにchar型のポインタを使用します。

#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

クイックレスポンスとその答えをありがとう。ポインタを操作する巧妙な方法。心から感謝する。 –

関連する問題