strcmp函数在一般人的印象中都是返回-1,0,1三者,其中之一的…… 但实际上准确的说,和底层该函数的实现有关,ubuntu下对其的描述是这样的:
SYNOPSIS
#include <string.h>
int strcmp(const char *s1, const char *s2);
DESCRIPTION
The strcmp() function compares the two strings s1 and s2. It returns an integer less than, equal to,
or greater than zero if s1 is found, respectively, to be less than, to match, or be greater than s2.
但微软提供的strcmp仅返回-1,0,1三者之一,大家后续使用strcmp时一定要ubuntu的des来使用,最稳妥!切记不要用switch,自己今天使用的是switch ... case -1: case 0: case :1,然后就有了一些列问题!!!
如果简简单单的是因为这个,而让自己纠结了几个小时那自己也太菜了,事实上,自己一开始也想到了返回值的问题!
可是当自己在ubuntu下用gcc编译自己用来测试的几行代码时 —— 想检测下strcmp的返回值 —— 发现了如下有点诧异的地方!!!&
如果觉得《令自己“诧异”的底层函数 -- strcmp (一直以为掌握了 其实没有)》对你有帮助,请点赞、收藏,并留下你的观点哦!