为什么这段代码打印int数组的地址而不是值?假设str
是"Aug 18, 2002",它打印如下:
total digits: 6 all digits list: 49 56 50 48 48 50
当我想让它说:
total digits: 6 all digits list: 1 8 2 0 0 2
下面是代码的相关部分。
功能:
int extractDigits (char str[MAX], int digitsInInputString[MAX]) { //returns total digits in str, and appends digitsInInput to list of digits
int i;
int totalDigits = 0;
for (i=0; i < strlen(str) - 1; i++) {
if (isdigit(str[i])) {
digitsInInputString[totalDigits] = str[i];
totalDigits++;
}
}
return totalDigits;
}
主程序:digitsInString = extractDigits(myStr, strNums);
printf("total digits: %d all digits list:", digitsInString);
for (i=0; i<digitsInString; i++) {
printf(" %d", strNums[i]);
}
printf("n");
将digitsInInputString[totalDigits] = str[I];
重写为:
digitsInInputString[totalDigits] = str[I] - '0';
这将从ASCII字符转换为十进制。