私は数字の文字列配列を持っています:
char numbers[5][10] = { "123456789", "0001234", "abc5xyz", "", "987654321" };
この配列を関数に渡します。
for(i=0; i<5; i++) {
MyFNatoi(numbers[i], &value);
printf("array: '%s' int value: %d\n", numbers[i], value);
}
この関数では、文字列全体が数字のみであるかどうかを確認し、そうである場合はtrueを返すにはどうすればよいですか?これまでのところ、私が持っているのは次のとおりです。
MyFNatoi(char *numArray, int *value) {
int i;
for (i = 0; i < 10; i++) {
if (numArray[i] > 47 && numArray[i] < 58) {
printf("%c", numArray[i] - 0);
// sscanf(p, "%d", &value);
}
}
}
そして、それはただ戻ります:
123456789array: '123456789' int value: -1217188485
0001234array: '0001234' int value: -1217188485
5array: 'abc5xyz' int value: -1217188485
array: '' int value: -1217188485
987654321array: '987654321' int value: -1217188485
文字列と同等の値変数を取得しようとしています。したがって、文字列が123456789
、の場合は、でvalue
ある必要があります123456789
。の場合はabc5xyz
、でvalue
ある必要があります0
。
これまでのところ、文字を0に変換し、:(を返します。
フルソース
#include <stdio.h>
MyFNatoi(char *numArray, int *value) {
int i;
for (i = 0; i < 10; i++) {
if (numArray[i] > 47 && numArray[i] < 58) {
printf("%c", numArray[i] - 0);
// sscanf(p, "%d", &value);
}
// printf("%c", numArray[i]);
}
// printf("- ");
}
int main( ) {
char numbers[5][10] = { "123456789", "0001234", "abc5xyz", "", "987654321" };
int i, value;
for(i=0; i<5; i++) {
MyFNatoi(numbers[i], &value);
printf("array: '%s' int value: %d\n", numbers[i], value);
}
return 0;
}