2015-10-17 100 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; 
} 
相关问题