"getchar 只能獲取一個字元"這種說法是正確的但是,如果用迴圈,那麼就可以讀取多個字元到一個數組中所以原來程式中的:while((a[i]=getchar())!="\n")i++;是沒有錯誤的,而且原來程式中下面的迴圈判斷也是正確的:while(*p!="\n") 判斷遇到回車為止.出錯的地方在於:if((*p>"a")&&(*p<"z")) //少=號m++;else if((*p>"A")&&(*p<"Z"))//少=號n++;else if((*p>"0")&&(*p<"9"))//少=號t++;elsek++;//此處少p後移 p++和上面缺少指標p後移的步驟不加=號的話小寫a和z,大寫A和Z數字0和9都沒有被計算到相應的個數中去.計算大寫字母個數,難道A,和Z不算大寫字母嗎?計算小寫字母個數,難道a,和z不算小寫字母嗎?計算數字個數, 0和9不用計算嗎?所以要改成下面才對:if((*p>="a")&&(*p<="z"))m++;else if((*p>="A")&&(*p<="Z"))n++;else if((*p>="0")&&(*p<="9"))t++;elsek++;p++;
"getchar 只能獲取一個字元"這種說法是正確的但是,如果用迴圈,那麼就可以讀取多個字元到一個數組中所以原來程式中的:while((a[i]=getchar())!="\n")i++;是沒有錯誤的,而且原來程式中下面的迴圈判斷也是正確的:while(*p!="\n") 判斷遇到回車為止.出錯的地方在於:if((*p>"a")&&(*p<"z")) //少=號m++;else if((*p>"A")&&(*p<"Z"))//少=號n++;else if((*p>"0")&&(*p<"9"))//少=號t++;elsek++;//此處少p後移 p++和上面缺少指標p後移的步驟不加=號的話小寫a和z,大寫A和Z數字0和9都沒有被計算到相應的個數中去.計算大寫字母個數,難道A,和Z不算大寫字母嗎?計算小寫字母個數,難道a,和z不算小寫字母嗎?計算數字個數, 0和9不用計算嗎?所以要改成下面才對:if((*p>="a")&&(*p<="z"))m++;else if((*p>="A")&&(*p<="Z"))n++;else if((*p>="0")&&(*p<="9"))t++;elsek++;p++;