9得票5回答
strcmpi被重命名为_strcmpi?

在MSVC++中,有一个用于不区分大小写的C字符串比较的函数strcmpi。 当您尝试使用它时,会出现以下信息: 自Visual C++ 2005起,此POSIX函数已过时。请改用符合ISO C++标准的_stricmp。 我不明白的是,为什么ISO不希望MSVC++使用strcmp...

7得票6回答
在使用strncmp()时,如果在表达式中使用strlen()是否会破坏使用strncmp()而不是strcmp()的目的?

据我理解,strcmp() (没有'n') 一旦在任意一个参数中看到空字符,就会立即停止处理并返回结果。 因此,如果其中一个参数被100%确定为以空字符结尾(例如字符串字面量),那么使用strncmp()(带有'n')并调用strlen()作为第三个参数来限制比较到已知字符串长度,将不会有任何...

11得票5回答
优化的strcmp实现

这个函数可以在这里找到。它是strcmp的一种实现方式:int strcmp(const char* s1, const char* s2) { while (*s1 && (*s1 == *s2)) s1++, s2++; return *(c...

8得票3回答
可加载的Bash内置命令

我正在编写一个strcmp bash内置函数。它可以编译通过,但是当我尝试启用它时,会出现以下错误: $ enable -f ./strcmp strcmp bash: enable: cannot open shared object ./strcmp: ./strcmp: only ET...

17得票3回答
strcmp有什么问题?

在对问题Reading In A String and comparing it C的回答中,有不止一个人反对使用strcmp(),并表示类似以下的话: 我也强烈建议你现在就开始习惯使用strncmp(),以避免今后出现许多问题。 或者(在Why does my string comp...

17得票9回答
我是否正确地认为strcmp对于字面值是等效的(且安全的)?

我们都知道溢出问题可能会引发的麻烦,这就是为什么strn*存在的原因,而且大多数情况下它们是有意义的。但是,我看到过一些代码使用strncmp来比较命令行参数,如下所示:if(... strncmp(argv[i], "--help", 6) == 0 现在,我认为这是不必要的,甚至可能是危险...

15得票8回答
有没有安全的strcmp函数?

我写了一个类似这样的函数:bool IsSameString(char* p1, char* p2) { return 0 == strcmp(p1, p2); } 问题在于有时候会不小心传递非字符串参数(这意味着p1或p2没有以null字符结尾)。然后,strcmp继续比较直到达...

19得票1回答
为什么在模板函数中使用strcmp()会返回不同的值?

我再次阅读《C++ Primer, 5th edition》。在关于模板的第16章中,有一个“非类型参数模板”的例子:template<unsigned N, unsigned M> int compare(const char (&p1)[N], const char (...

8得票6回答
C中指针的strcmp无法工作

为什么这段代码不起作用。只是想检查用户输入是否与密码相同。 char *pass; printf("Write the password: "); scanf("%s", pass); // Because is a pointer the & is out ? if( str...

11得票2回答
strcmp()在比较相同字符串时返回不同的值

char s1[] = "0"; char s2[] = "9"; printf("%d\n", strcmp(s1, s2)); // Prints -9 printf("%d\n", strcmp("0", "9")); // Prints -1 为什么strcmp在接收相同参数时返回...