为什么 strcmp() 在代码块(特别是在 gcc 中)和其他编译器中的工作方式不同?
Why strcmp() works differently in code blocks (particularly in gcc) and other compilers?
我只是想在代码块中执行这个程序,我得到了 0,1,-1 的输出,在其他一些编译器中我得到了结果 0,4,-1 但根据 strcmp( ) ,我应该得到 0,4,-32 ,我无法理解为什么我在不同的编译器上得到不同的输出。
#include<stdio.h>
#include<string.h>
int main()
{
char string1[]="Jerry";
char string2[]="Ferry";
int i,j,k;
i=strcmp(string1,"Jerry");
j=strcmp(string1,string2);
k=strcmp(string1,"Jerry boy");
printf("%d %d %d \n",i,j,k);
return 0;
}
strcmp()
returns值大于或小于或等于0
。这意味着它将 return 0
确定两个字符串是否相等,否则它可以 return 大于或小于 0
的任何整数值 ].
我只是想在代码块中执行这个程序,我得到了 0,1,-1 的输出,在其他一些编译器中我得到了结果 0,4,-1 但根据 strcmp( ) ,我应该得到 0,4,-32 ,我无法理解为什么我在不同的编译器上得到不同的输出。
#include<stdio.h>
#include<string.h>
int main()
{
char string1[]="Jerry";
char string2[]="Ferry";
int i,j,k;
i=strcmp(string1,"Jerry");
j=strcmp(string1,string2);
k=strcmp(string1,"Jerry boy");
printf("%d %d %d \n",i,j,k);
return 0;
}
strcmp()
returns值大于或小于或等于0
。这意味着它将 return 0
确定两个字符串是否相等,否则它可以 return 大于或小于 0
的任何整数值 ].