char name[20]="";
char address [50]= "";
do{
printf("Input your name [1..20] : ");
scanf("%s" ,name);
fflush(stdin);
} while(strlen(name)>20);
do{
printf("Input your address [1..50|| must contain \"Street\"] : ");
scanf("%s",address);
fflush(stdin);
} while((strcmp(address,"Street")) == 0 || (strlen(address) > 50) || (strcmp(address,"Street") != 0));
大家好,我还是C的新手,我想问一下这段代码。我想创建一个程序,用户可以输入字符串,并且必须包含单词" Street"它可以输入50个字符,如果超过50个字符或没有单词" Street"然后程序会重复,所以我的问题是当我输入单词" Street blah blah" (超过50个字符)它仍然显示输出并且没有重复,所以有关于此代码的任何解决方案,或者有另一种解决方案可以帮助我完成任务。谢谢,抱歉我的英语不好(我希望答案是在C中因为我还在学习)
答案 0 :(得分:0)
试试这个
while((strstr(address,"Street")==NULL || strlen(address)>50 ));
http://www.tutorialspoint.com/c_standard_library/c_function_strstr.htm
答案 1 :(得分:-1)
这部分代码错误
while((strcmp(address,"Street")) == 0 || (strlen(address) > 50) || (strcmp(address,"Street") != 0));
因为你写了strcmp(address,"Street") == 0 || strcmp(address,"Street") != 0
,这将永远导致true
。
尝试使用此
while((strstr(address,"Street")==NULL || strlen(address)>50 ));