问:虽然循环多条件
问题描述:
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新手,我想问一下这个代码。我想制作一个程序,用户可以输入字符串,并且必须包含单词“街道”,如果超过50个字符或者没有单词“街道”,它可以输入50个字符,然后程序会重复,所以我的问题是当我输入单词“Street blah blah”(超过50个字符)它仍然显示输出并且没有重复,所以有关于此代码的任何解决方案,或者有另一个解决方案可以帮助我完成任务。谢谢,对不起我的英文不好(我希望答案是用C,因为我仍在学习)问:虽然循环多条件
答
试试这个
while((strstr(address,"Street")==NULL || strlen(address)>50));
http://www.tutorialspoint.com/c_standard_library/c_function_strstr.htm
答
这部分代码是错误的
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));