问题标签 [strcmp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
16164 浏览

c - 我是否正确认为 strcmp 对于文字是等效的(并且安全的)?

我们都知道溢出可能导致的麻烦,这就是 strn* 存在的原因——而且大多数时候它们是有意义的。但是,我已经看到使用 strncmp 来比较命令行参数的代码,如下所示:

现在,我会认为这是不必要的,甚至可能是危险的(对于更长的参数,很容易误算文字中的字符)。

strncmp 在空值上停止,并且代码已经假定 argv[i] 是空终止的。任何字符串文字都保证以空值结尾,那么为什么不使用 strcmp 呢?

也许我错过了一些东西,但我已经看过几次了,这一次让我很感兴趣,可以问。

0 投票
7 回答
54211 浏览

c - 为什么 strcmp() 在其输入相等时返回 0?

当我像这样调用 C 字符串比较函数时:

它返回 0,这意味着字符串不相等。

谁能告诉我为什么 C 实现似乎会这样做?我认为如果相等,它将返回一个非零值。我很好奇我看到这种行为的原因。

0 投票
7 回答
1753 浏览

c - 使用 strcmp 进行比较

使用 gcc C99 编译

我正在尝试使用字符串比较来比较 2 个字符串。但是,我似乎在 strcmp 行上得到了堆栈转储。

**属性将包含这些,所以我正在寻找框架类型。

这是正确的比较方法。

非常感谢您的任何建议,

0 投票
3 回答
922 浏览

c++ - 字符串比较在 Visual C++ 2005 中不起作用

如果从注册表中得到一个 gring 并且当我将它放在消息框中时它会正确显示。::MessageBoxW(0, (LPCWSTR)achValue, _T("找到"), MB_YESNO);

该值存储在 archValue 中,它是一个 DWORD。我想要做的是将它与以下字符串“2.0.7045.0”进行比较,但 strcmp 无法为我工作。

任何关于如何做到这一点的想法都将不胜感激。在 c++ 中相当垃圾,我无法像在 dll 中那样轻松调试。

非常感激

托尼

0 投票
5 回答
33511 浏览

c - strcmp 不工作

我知道这可能是一个完全新手的问题(我很长时间没有接触过 C),但是有人可以告诉我为什么这不起作用吗?

如果我输入“exit”它不会进入if,它是否与“buffer”的长度有关?

有什么建议么?

0 投票
2 回答
1297 浏览

php - 如何在 PHP 中实现类似 MySQL 的 latin1_general_ci 排序规则?

我正在编写一个字符串比较函数来对医学术语进行排序,这些术语通常包含来自许多不同欧洲语言的特殊重音字符,我需要以某种方式实现类似于 MySQL 的排序规则latin1_general_ci

首先,我正在对字符串进行一些基本的修改以删除空格、引号、连字符、括号等。当我将字符串传递给strcoll()使用默认语言环境时,问题就出现了,因为它不够聪明,无法考虑,例如, 一个重音的 e 在字典上等同于一个正常的 e。

我对使用德语或法语等语言环境持谨慎态度,因为它可能不会包含我需要考虑的所有特殊字符。是否有一个语言环境可以给我类似于latin1_general_ci排序规则的东西?或者是否有其他解决方案?

我天真的解决方案是创建一个大的关联数组来将重音字母映射到它们的常规字母等价物,然后将它与 一起使用str_replace(),但这听起来很慢而且很乏味(而且容易出错)。如果可能的话,我宁愿使用语言内置的东西。

同样在这一点上,是否strcmp()strcasecmp()尊重当前语言环境的排序规则,或者只是strcoll()这样做?

0 投票
7 回答
5243 浏览

c - 比较 C 中的字符串 - strcmp

我在比较 C 中的字符串时遇到了麻烦(我对它很陌生)。我在此服务器应用程序上有套接字,等待接受来自客户端的数据。在我程序的这个特定部分中,我希望能够根据从客户端接收到的数据执行 MySQL 查询。我希望能够知道接收到的数据何时具有“newuser”的值来启动一个简单的注册过程。strcmp 返回一个正值 1 ,我相信我应该得到一个 0 因为值应该相等。

源代码:

输出:

我有一种感觉,我没有正确处理传入缓冲区或错误地复制缓冲区。

0 投票
6 回答
129629 浏览

javascript - 有 JavaScript strcmp() 吗?

任何人都可以为我验证这一点吗?JavaScript 没有 strcmp() 的版本,所以你必须写出类似的内容:

0 投票
5 回答
2925 浏览

c - 字符串比较中的十六进制文字问题

我正在读取一个 NES ROM 文件,其中前四个字节是“\x4e\x45\x53\x1a”或 NES\x1a。在我的实际代码中,给定的文件可以是任意的,所以我想检查以确保这个头文件在这里。但是,我遇到了一些麻烦,下面的代码演示了:

返回:

问号是 \x1a。

我是 C 的新手,所以我可能遗漏了一些微妙的(或明显的)关于为什么两个字符串不匹配,以及为什么打印行 D 时不显示问号,以表示 \x1a 是在字符串的末尾,B 行似乎表明它应该是。

0 投票
4 回答
3194 浏览

c - C - strtok and strcmp

I am having a bit of trouble using strtok with strcmp.

If I give it the following header

I get this output:

As you can see, strtok() parses the string properly, but the values c1, and c2 dont seem to make sense (c1 should return 0, but instead it returns 1).

Whats going on here?