问:虽然循环多条件

问题描述:

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));