我们可以在printf语句中包含“strcmp”吗?

时间:2017-08-20 17:21:05

标签: c

任何人都可以解释这行代码的含义

      printf("%d",strcmp("strcmp()","strcmp()"))

2 个答案:

答案 0 :(得分:1)

代码只是个笑话......

它只比较两个固定字符串。为了使它混淆,两个字符串包含库函数(strcmp)的名称,但是 - 原因 - 不会使它成为函数调用。

代码

printf("%d",strcmp("strcmp()","strcmp()"))

类似于

printf("%d",strcmp("A","A"))

它将打印0(零),因为字符串是相同的,strcmp在字符串具有精确比较时返回零。

答案 1 :(得分:0)

strcmp()负责字符串的字典比较(字符顺序).i.e。第一个字符与第一个字符相比如果等于第二个字符,依此类推。 它的签名如下:

int strcmp(const char *str1, const char *str2)

http://forgetcode.com/C/1026-strcmp-lexicographically-compares-two-strings https://www.tutorialspoint.com/c_standard_library/c_function_strcmp.htm

此函数返回如下值:

如果返回值< 0然后它表示str1小于str2。

如果返回值> 0然后它表示str2小于str1。

如果返回值= 0则表示str1等于str2。