我正在撰寫一個函式來將字串中的每個小寫字符大寫。它從用戶那里獲取一個字串,這是函式的輸入。如果用戶不輸入空格,我的程式就可以作業,但是當字串中有空格時,函式結束。
#include <stdio.h>
char *uppercase(char *c) {
int i = 0;
while (c[i] != '\0') {
if (123 > c[i] && c[i] > 96)
c[i] = c[i] - 'a' 'A';
i ;
}
return c;
}
int main() {
char input[100];
printf("Enter the phrase: ");
scanf("%s", input);
printf("%s", uppercase(input));
return 0;
}
例子:
輸入:test test
輸出:TEST
輸入:Hello
輸出:HELLO
輸入:How are you
輸出:HOW
我認為這與while宣告有關?謝謝您的幫助。
uj5u.com熱心網友回復:
問題不在于
下一篇:在C中修改結構內的變數while陳述句,而在于scanf()格式:%s從輸入中讀取單個單詞,將行的其余部分留在stdin緩沖區中。另請注意,鍵入超過 99 個字符的單詞將導致未定義行為,因為scanf()將寫入超出input陣列末尾。使用
