我有那个代码,当用户给出“###”时,我希望我的循环完成。
xor ax,ax
dec ah
shr ax,14
add ax,ax
到目前为止还可以,但是当用户输入大于11个字符的输入时,我会有多个“Give String”打印件。
我用int main(){
char s[10];
printf("Give string: ");
fgets(s,11,stdin);
do{
printf("Give string: ");
fgets(s,11,stdin);
}while ( s!="###" );
return 0;
}
尝试,我做对了。任何人都可以通过scanf
为我提供解决方案吗?
I mean the output looks like this.
答案 0 :(得分:0)
C字符串不支持直接比较,您需要strcmp
,所以
while ( s!="###" )
应为while(strcmp(s,"###"))
此外,您还需要从\n
移除fgets
(以便strcmp
忽略\n
)。所以do..while
应该是这样的:
do{
printf("Give string: ");
fgets(s,11,stdin);
s[strlen(s) - 1] = '\0';
} while (strcmp(s,"###"));