文字列から数字を除去して表示する関数を作成したのですが、
関数内では数字が正しく除去されているのですが、
メインプログラムで関数を呼びだしても数字が除去されません。
どこがおかしいのか教えていただけないでしょうか?
#include <stdio.h> #include <string.h> #include <ctype.h> void digit(char* s){ char tmp[256]; int i,j = 0; for(i=0; i < strlen(s); i++){ if (!((*(s+i) >= '0') && (*(s+i) <= '9'))) tmp[j++] = *(s+i); } tmp[j+1] = '0'; //末尾にNULL文字を追加 s = tmp; //ポインタが配列tmpを指すように変更 printf("関数内のポインタSが指す文字列は%s\n", s); } int main(void){ char* str = "abc4de5fg"; digit(str); printf("メイン関数のポインタstrが指す文字列は%s", str); return 0; }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/18 16:30
2019/04/18 16:48
2019/04/18 16:58
2019/04/19 15:06