问题标签 [strncmp]
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.
c - strcmp 生成核心转储
所以我有一个 std::unordered_map,我想访问存储在这个地图中的字符串。我想搜索 intro 地图内的所有单词并与给定单词进行比较。如果字符串相同,则继续执行 if 语句。
问题是这些代码会生成一个 .core 转储文件。您在我的代码中看到任何错误吗?
崩溃核心分析将我指向 strcmp 行
c - 使用 strcmp/strncmp 比较 int8_t 和 char*
目前正在尝试修复一段时间未使用的代码。
我有两个变量:int8_t foo[size]
和const char* const bar
.
有一个 if 检查if(0 != strcmp((char *)foo, bar))
目前,即使printf("%s | %s", foo, bar)
返回两个完全相同的字符串,这也是失败的。我也试过strncmp
了,也失败了。
通过在线研究,我知道这很可能是由于终止了空字节,但是我不知道如何解决/解决这个问题。
预期结果strcmp
返回 0,因为打印时两个字符串相同。
实际结果:返回失败。
实际数据:5352A565712345657567565785658956581
运行时printf("Value of foo and bar: %s and %s", foo, bar)
,两个变量都返回上面的数据。
c - 比较字符串中的 N 个字节
我想比较 argv[1] 和字符串“pid”,但我想限制要比较的字节数。我使用了 strncmp,但有问题,如果我输入第三个参数 3,它会比较超过 3 个字节。
在终端
c - 在没有 strlen 的情况下确定哪个 char * 最短
我有两个不同char *
的,char *string1
一个是不变的,一个是char *string2
可以改变的。我char *string2
从列表中检索。
我想找到最短的长度char *
来使用它:
strncmp(string1, string2, shortest);
.
这将在一个while循环中,如下所示:
我不能使用strlen(const char *s)
,因为它对我的用例来说太慢了。
string-comparison - 创建比较字符串函数
我创建了一个比较字符串的函数,因为我对它总是丢失第二个字符串中的最后一个字符并总是返回“相同的字符串”而感到沮丧,我注意到我在搞乱并使用gets()而不是fgets () 用于第二个字符串。我改变了它,该功能按预期工作。
我的问题是,为什么 gets() 函数减去最后一个字符?它不应该减去空值并保留它吗?
这是否意味着作为 C 的新手,我应该避免使用 gets() 而专注于 fgets()?我开始以与 strcmp() 与 strncmp() 相同的方式来考虑它们
谢谢大家的时间!
注意:我知道最后我真的不需要 (i==j),我只是把它留在那里(也许是额外的安全性?)。
c - 返回 char 字符串指针之间的差异时,强制转换和取消引用的顺序有多重要?
出于教育目的(是 42 是),我正在重写 strncmp,一位同学刚刚来问我为什么要以这种方式转换我的返回值。我的建议是先进行类型转换,然后再取消引用。我的逻辑是我想将 char 字符串视为 unsigned char 字符串并取消引用它。
他的目的是先取消引用,然后再进行类型转换,以确保它返回两个无符号字符之间的差异。像这样:
在讨论之后(我同意他的看法,我的演员阵容很奇怪),我们查找了一些生产就绪实现的源代码,令我们惊讶的是,Apple 似乎以与我相同的顺序进行转换/取消引用:
https://opensource.apple.com/source/Libc/Libc-167/gen.subproj/i386.subproj/strncmp.c.auto.html
因此问题是:在这种情况下有什么区别?为什么选择一个而不是另一个?
(我已经找到了以下内容;但它指定了不同大小的数据类型的强制转换/取消引用,而在字符/无符号字符的情况下,它应该没关系吧?
c++ - strcmp 不起作用,我似乎不明白为什么 - 转换为 ASCII 代码使程序按预期工作
首先,请不要批评程序的编写方式,因为这是我们在我国学习的内容。
我知道它是 C 和 C++ 的混合体,而且我使用的东西已经过时,但事情就是这样。
所以我必须制作一个程序,将 n 个单词作为输入。然后我必须打印以最后一个作为前缀的单词。
例如
这是我的程序。它按预期工作:
但最初,它看起来像这样:
它会引发一些错误:
我似乎无法理解为什么会发生这种情况。你们中的任何人都可以帮助我理解吗?另外,我应该使用转换为 (unsigned int) 还是只使用 strcmp?
谢谢。
c - 字符串比较的更好方法
我有一个 JSON 解析器,它为每个解析的键值对发送回调。然后strncmp
我在我的程序中使用静态分配的字符串来检查该字段是否与我感兴趣的任何字段匹配。我现在得到了十几个strncmp
inif-else
语句:
我不确定这是否是完成工作的最佳/可维护方式。有更好的方法吗?我已经在编译时预先计算了字符串长度。
c - 使用 strncmp() 的安全影响?
我一直在对 strncmp 的安全性进行一些研究,我知道它不是空终止的。但我也看到有人说它“不是 strcmp() 的安全替代品”。谁能给我解释一下?我一直在寻找一段时间,但实际上我能找到的唯一一个地方说这是关于几个问题的。也许有人可以链接我一些资源来调查这个?谢谢。