/ / char *-c、filter、char、alphanumericから英数字をフィルタリングする方法

char * - c、filter、char、alphanumericから英数字をフィルタリングする方法

フィルタリングする共有オブジェクトを作成していますchar * buff_inから受け取った英数字をchar * buff_outにコピーします。現在、私のコードは私がやりたいことをしていますが、数字の間に^ @を作成しています。

int tratar(char* buff_in, char* buff_out){
int i = 0;

while(buff_in[i]){
if(!isalpha(buff_in[i])){
buff_out[i] = buff_in[i];
}
i++;
}
printf("%s", buff_out);
}

プログラムを実行するとすべてが正常に見えますが、エディターで返された値を見ると、次のように表示されます:^ @ ^ @ ^ @ ^ @ ^ @ 1 ^ @ ^ @ ^^ @ ^ @ 10 ^ @ ^ @ ^ @ 50 ^ @ ^ @ ^ @。 1 10 50のみである必要がある場合。

ありがとうございました

回答:

回答№1は2

buff_outには別のインデックスが必要です。

int i = 0, j = 0;
...
buff_out[j++] = buff_in[i];

また、printf()の前にbuff_outをnullで終了します。

buff_out[j] = "";