以下代码中使用的变量“id”是一个全局变量,它来自一个单独的函数。它被声明并用作字符串。 check变量是一个整数。
do{
printf("\n\n\n\n\n\n\t\tEnter the id of the account you want to transfer to: ");
fflush(stdin);
scanf("%s",&account_id);
check=strcmp(id,account_id);
printf("%d",check);//This is just a temporary check to see what strcmp is returning
if(check<0)
{
printf("\n\t\tYou cannot transfer to you own account!\n");
}
标题中存在问题。无论我输入什么值,检查总是1。如果我以相反的顺序比较变量(即strcmp(account_id,id);),它确实会变为-1。
提前谢谢
答案 0 :(得分:1)
虽然您没有向我们展示id
或account_id
的值,但我希望您的问题是隐藏的换行符。
我在猜测:
id = "12345";
account_id = "12345\n";
\ n \ n来自您点击输入的时间!
您可以在调试器中检查,或者甚至使用printf:
printf("Lengths are: %d and %d\n", strlen(id), strlen(account_id));
因此,他们不能比较平等。