251得票11回答
在C语言中,如何正确地比较字符串?

我正在尝试编写一个程序,让用户输入一个单词或字符,存储它,然后打印出来,直到用户再次输入相同的内容,退出程序。我的代码如下: #include <stdio.h> int main() { char input[40]; char check[40]; ...

144得票8回答
JavaScript中是否有strcmp()函数?

有人能为我验证一下吗?JavaScript没有一个版本的strcmp(),所以你必须编写类似下面的代码: ( str1 < str2 ) ? -1 : ( str1 > str2 ? 1 : 0 );

41得票8回答
为什么strcmp没有进行SIMD优化?

我尝试在一台x64计算机上编译这个程序:#include <cstring> int main(int argc, char* argv[]) { return ::std::strcmp(argv[0], "really really really really r...

34得票4回答
strcasecmp算法存在缺陷吗?

我正在尝试在C中重新实现strcasecmp函数,并注意到比较过程中似乎存在不一致。 从man strcmp中可以得知: strcmp()函数比较两个字符串s1和s2。 它不考虑区域设置(对于区域设置感知比较,请参见strcoll(3))。 如果找到s1小于,等于或大于s2,则返...

33得票2回答
使用字符串指针或字符串字面量作为参数时,strcmp() 返回值不一致的问题。

当我在使用 strcmp 时,我注意到了这个问题,以下是代码:#include <string.h> #include <stdio.h> int main(){ //passing strings directly printf("%d\n", s...

31得票8回答
空字符串的strcmp函数

我正在审查一些代码,看到有人进行了以下操作:if (0 == strcmp(foo,"")) 我很好奇,因为我认为这样做会更快:if (foo[0] == '\0') 这样做是否正确,或者说strcmp已经被优化到让它们变得相同了。(我意识到即使存在一些差异,它们也很小,但我想通过使用我的方法...

25得票7回答
为什么当输入相等时,strcmp()返回0?

当我像这样调用C字符串比较函数:strcmp("time","time") 它返回0,这意味着两个字符串不相等。 有人能告诉我为什么C实现会这样做吗?如果相等,我认为它应该返回一个非零值。我很想知道我看到这种行为的原因。

24得票6回答
需要左值做为赋值运算符的左操作数

为什么我会收到lvalue required as left operand of assignment 如何通过单个字符串比较来解决这个问题?我该如何在C中修复它?if (strcmp("hello", "hello") = 0) 谢谢!

22得票6回答
标准字符串函数为什么比我的自定义字符串函数更快?

我决定找到两个函数的速度: strcmp - 在string.h中定义的标准比较函数 xstrcmp- 一个与参数相同、功能相同,只是由我创建的函数。 以下是我的xstrcmp函数:int xstrlen(char *str) { int i; for(i=0;;i++...

22得票5回答
C语言中strcmp()函数的返回值是什么?

我正在学习C语言中的strcmp()函数。我知道当两个字符串相等时,strcmp()函数返回0。 但是,当man手册上说当第一个字符串小于第二个字符串时,strcmp()函数返回值小于0,它指的是长度、ASCII值还是其他什么?