為什么這段代碼列印的是 int 陣列的地址而不是值?說str是“2002 年 8 月 18 日”,它會列印:
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");
uj5u.com熱心網友回復:
將此行改寫digitsInInputString[totalDigits] = str[I];為:
digitsInInputString[totalDigits] = str[I] - '0';
這將從 ASCII 字符轉換為十進制。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/335226.html
