【发布时间】:2015-11-29 22:48:31
【问题描述】:
#include <stdio.h>
#include <cs50.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
int main( int argc, string argv[])
{
if(argc!=2)
{
printf("One more string \n");
}
string key = argv[1];
else if(!isalpha(key))
{
printf("Prompt only alphabet letters\n");
}
else
{
string p = GetString();
for ( i=0, j=0, n=strlen(p); i<p; i++, j++)
{
if(j>=stlrlen(p))
{
j=0;
}
if(isupper(p[i]))
{
printf("%c", ((p[i] +key[j])%26)+'A');
}
if(islower(p[i]))
{
printf("%c", ((p[i] + key[j])%26)+'a');
}
if(!isupper(p[i]) && !islower(p[i]))
{
printf("%c", p[i]);
}
printf("\n");
return 0;
}
}
}
我的代码有什么问题? CS50 Appliance 给我带来 1 个错误
c:15:1 expected expression.
这对我的代码有意义吗? 有人能帮我吗? 当我只是删除 else if 代码块时,它给 else 语句带来了同样的错误。
【问题讨论】:
-
第一个
else没有对应的if。您的意思是在其中一个块中包含string key = argv[1];? -
你不能有超出 if 范围的代码或 if-else 之间的 else