我有一个数字字符串数组:
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
我试图让 value 变量等效于字符串。所以如果字符串是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;
}