【发布时间】:2020-09-09 18:45:05
【问题描述】:
#include <stdio.h>
int main(void)
{
char a[50];
gets(a);
for(int i=0;i<a[i];i++)
{
if(a[i]=="z") //should print a for z
printf("a");
else if (a[i]=="Z") //should print A for Z
printf("A");
else if(a[i]<="Z"||a[i]<="z") //else print other char+1
printf("%c", a[i]+1);
}
}
当 a[i]==Z 时,此代码不会返回 A。它返回 { for z 和 [ for Z. 这里可能有什么问题?为什么 if-else 语句不起作用?
【问题讨论】:
-
双引号用于字符串。对于字符,请使用单引号。
-
从编译器读取警告
-
i<a[i]是一个非常奇怪的循环条件。您确定要这样做,而不是循环到字符串的末尾吗? -
@brownputin 那么你预计循环什么时候结束?
-
最后一个
else if应该是else if (isalpha(a[i]))
标签: c arrays if-statement encryption char