たとえば、文字列を取り、文字"abc123def"
列形式で数値を返す C の関数を作成しようとしています: "123"
。
私は C の経験がほとんどないので、isDigit()
関数を正しく使用しているかどうか疑問に思っていました。問題を解決するためのより良い方法がある場合は、私のコードを以下に示します。助けていただければ幸いです。ありがとう!
char findNumber(char *str1)
{
char num1[] = "";
int i = 0;
int j = 0;
while(str1[i] != '\0') {
if(isDigit(str1[i])) {
num1[j] = str1[i];
j++;
}
i++;
}
num1[j] = '\0';
return num1;
}
int main(int argc, const char* argv[])
{
char str2[] = "!3254";
printf(findNumber(str2));
return 0;
}
次のようなエラーが表示されます。
undefined reference to `isDigit'
と
return makes integer from pointer without a cast
これらの原因は何ですか?