2015-10-17 102 views
-2

我正在編寫一個簡單的代碼,以便從小寫更改爲大寫,但它在if()語句的第12行顯示錶達式語法錯誤。代碼運行良好,沒有平等標誌,但不適用於平等。任何幫助糾正它是值得讚賞的。表達式語法錯誤問題

的代碼如下:

#include<stdio.h> 
#include<string.h> 
#include<conio.h> 

main() 
{ 
char s[]="Computer"; 
int i; 
clrscr(); 
for (i=0;i<strlen(s);i++) 
    { 
    if (s[i] > = 'a' && s[i] < = 'z') 
    s[i]+='A'-'a'; 
    } 
puts(s); 
getch(); 
return 0; 
} 
+2

順便說一句,因爲「太多的空間」是導致此語法錯誤,也有在可讀性/風格上的「空間太小」幾個OCCURENCES你碼。建議您查看一些完善的C代碼並修改一些風格最佳實踐。 –

+2

其中一些是:在任何運算符周圍都有空格,'#include'後面有一個空格,';'後面和','後面有一個空格,並且在一行中使用條件語句*一個*塊*。 –

回答

2

> =是無效的語法,因爲>=之間的空間。刪除空間:

if (s[i] >= 'a' && s[i] <= 'z') 
-2

請看看你的代碼if(s[i] > = 'a' && s[i] < = 'z') 作爲if(s[i] >= 'a' && s[i] <= 'z')

+2

無需給出相同的答案* 20分鐘後*並且沒有可理解的解釋。 –

1

你所得到的語法錯誤是由於>=運營商之間的空間。同樣適用於<=。此外,這將是一個更好版本的代碼:

int main() 
{ 
    char s[] = "Computer"; 
    size_t i, len = strlen(s); 

    for (i = 0; i < len; i++) { 
     if (s[i] >= 'a' && s[i] <= 'z') 
      s[i] -= 32; 
    } 

    puts(s); 
    getch(); 

    return 0; 
}