【发布时间】:2019-05-15 11:33:47
【问题描述】:
我对 c 中的 strcmp 函数有疑问。作为家庭作业,我们对字符串进行了一些比较。但是有一点不清楚,我们必须用这个函数来比较数字。我知道还有其他比较方法可以比较数字,但我们的教授就是这样用的。
当我使用这样的功能时:
char string1[] = "1";
char string2[] = "2"
printf("Compare between str1 and str2: %d, %d", strcmp(string1, string2));
-> 输出:
Compare between str1 and str2: 1
这意味着 string1 更大。
然后我只打印了变量:
printf("string1 %d", string1); //output: 6356750
printf("string2 %d", string2); //output: 6356748
为什么会有这样的数字?这些数字是什么意思?
我以为字符串数组中的数字代表 ASCII 码,但我想我错了。
【问题讨论】:
-
您的标题和您所说的问题(在第一句话中)完全具有误导性。你根本不会问任何关于
strcmp的问题。请花一些时间阅读the help pages,阅读the SO tour,阅读有关how to ask good questions,以及this question checklist。 -
对不起,请道歉。当然我的意思是: printf("在 str1 和 str2 之间比较:%d, %d", strcmp(string1, string2));
-
我已经更新了我的问题
-
printf("Compare between str1 and str2: %d, %d", strcmp(string1, string2)):这是错误的,你的格式字符串有两个%ds,但你只提供了一个参数(strcmp(string1, string2))。你的编译器可能警告过你。
标签: c