strcmp相关内容

在 C 中比较字符串的最快方法

我想知道在 C 中是否有比使用 strcmp() 更快的方法来比较字符串,尤其是当我必须将一个字符串与 中的多个预定义字符串进行比较时switch 语句 时尚.在我的应用程序中,要比较的字符串有时可以达到 1000 个字符,所以只是想 strcmp() 是否足够,或者是否存在我不熟悉的更好和有效的方法.我实际上正在开发一个低功耗嵌入式物联网项目,其中更多的 CPU 周期会消耗电力. 解决方案 ..
发布时间:2022-01-25 09:26:13 其他开发

使用 strcmp 比较 char 数组中的字符

我想使用 strcmp 在 char 数组中查找特定字符.例如,我想检测 . 在文本上的索引号. char host[100] = "hello.world";尺寸_t i = 0;for(i=0;i 然而,它输出 “传递 'strcmp' 的参数 1 使指针来自整数而不进行强制转换".我注意到 char 数组是一个 int,但我无法弄清楚我应该如何传递 char 索引.你能告诉我应该如何使用 ..
发布时间:2022-01-12 20:57:05 其他开发

用 fgets 读取的一行上的 strcmp

我正在尝试比较两个字符串.一个存储在文件中,另一个从用户(标准输入)中检索. 这是一个示例程序: int main(){字符目标名称[50];fgets(targetName,50,stdin);char aName[] = "bob";printf("%d",strcmp(aName,targetName));返回0;} 在这个程序中,当输入是"bob"时,strcmp返回值-1.为什 ..
发布时间:2021-12-02 08:13:35 其他开发

如何正确比较 C 中的字符串?

我正在尝试获取一个程序,让用户输入单词或字符,将其存储,然后打印,直到用户再次键入并退出程序.我的代码如下所示: #include int main(){字符输入[40];字符检查[40];国际我= 0;printf("你好!\n请输入一个单词或字符:\n");获取(输入);/* 过时的功能:不要使用!!*/printf("我现在将重复此操作,直到您将其输入给我为止.\n");而(检查!=输入) ..
发布时间:2021-12-01 23:33:56 其他开发

32 位和 64 位系统中的 strcmp 行为

以下代码在 32 位和 64 位操作系统中的行为不同. char *cat = "v,a";如果(strcmp(猫,“,")== 1)... 以上条件在 32 位中为真,在 64 位中为假.我想知道为什么这是不同的?32 位和 64 位操作系统都是 Linux (Fedora). 解决方案 strcmp() 函数仅被定义为在参数 1 在参数 2 之前返回负值,如果它们相同则返回零, 如 ..
发布时间:2021-11-26 14:44:31 其他开发

32 位和 64 位系统中的 strcmp 行为

以下代码在 32 位和 64 位操作系统中的行为不同. char *cat = "v,a";如果(strcmp(猫,“,")== 1)... 以上条件在 32 位中为真,在 64 位中为假.我想知道为什么这是不同的?32 位和 64 位操作系统都是 Linux (Fedora). 解决方案 strcmp() 函数仅被定义为在参数 1 在参数 2 之前返回负值,如果它们相同则返回零, 如 ..
发布时间:2021-11-24 23:32:04 C#

8086 中的字符串比较

我对这个问题有疑问.我不知道它要我做什么. 问题:编写一个过程,将 DS:SI 处的源字符串与 ES:DI 处的目标字符串进行比较,并相应地设置标志.如果源小于目标,则设置进位标志.如果字符串相等,则设置零标志.如果源大于目标,则零和进位标志都被清除. 我的回答: MOV ESI , STRING1MOV EDI, STRING2MOV ECX,计数CLDRPE CMPSB 我仍然 ..
发布时间:2021-09-29 19:37:58 其他开发

为什么我的 strcmp() 失败了?

我是 C 新手,正在学习字符串标记化.我试图通过以下方式比较两个字符串.但是我正在做的字符串比较失败了. 你能告诉我我在这里遗漏了什么吗? 我找不到另一个类似的问题,可能是由于我在 C 方面的经验不足.如果有的话,请您将我重定向到它吗? char* input = "comparer here";字符*参数[5];整数计数器 = 0;char *tok = strtok(input, ..
发布时间:2021-08-31 19:03:34 其他开发

优化的 strcmp 实现

在此处找到此函数.它是 strcmp 的一个实现: int strcmp(const char* s1, const char* s2){而 (*s1 && (*s1 == *s2))s1++,s2++;返回 *(const unsigned char*)s1 - *(const unsigned char*)s2;} 除了最后一行我都明白了,总之最后一行是怎么回事? 解决方案 ret ..
发布时间:2021-08-31 18:32:09 其他开发

strcmp() 在 C 中究竟返回什么?

我用 C 编写了这段代码: #include #include #include #include int main(){字符字符串1[20];字符字符串2[20];strcpy(string1, "Heloooo");strcpy(string2, "Helloo");printf("%d", strcmp(string1, string2));返回(0);} 控制台应该打印值 1 还是 o ..
发布时间:2021-08-30 20:36:50 其他开发

缓冲区上的 basename 进入分段错误

我现在正在使用 basename 进行调整,但我遇到了一个非常奇怪的案例(至少对我而言).代码如下: 字符缓冲区[300];字符* p;strcpy(buffer, "../src/test/resources/constraints_0020_000");printf("%d\n", strcmp(basename("../src/test/resources/constraints_0020 ..
发布时间:2021-06-18 20:00:33 其他开发

为什么 strcmp 比我的函数快这么多?

我写了一个函数,Str::Compare,它基本上是以另一种方式重写的strcmp.比较这两个函数时,在重复 500'000'000 次的循环中,strcmp 执行速度太快,大约快 x750 倍. 此代码是在 C 库中编译的,-Os 参数处于活动状态: int Str::Compare(char* String_1, char* String_2){字符 TempChar_1, TempC ..
发布时间:2021-06-15 19:22:50 C/C++开发

减去两个字符

我刚开始用汇编编程,所以我是初学者. 为了练习,我试图用汇编(NASM Intel 语法)重写一个基本的 libc. 但我一直在使用 strcmp 函数: ;;比较两个 C 风格的以 NUL 结尾的字符串;;输入:ESI = s1 的地址,EDI = s2 的地址;;输出:EAX = 如果找到 s1,则分别返回小于、等于或大于零的整数,分别小于、匹配或大于 s2力量:调用strlen ..
发布时间:2021-06-07 18:41:33 其他开发

在C中使用fgets和strcmp

我正在尝试从用户那里获取字符串输入,然后根据他们输入的输入来运行不同的功能. 例如,我问,“您最喜欢的水果是什么?"我希望程序根据输入的内容进行注释...我不确定如何执行此操作.这是我到目前为止的内容: #include#include炭果[100];主要的() {printf(“您最喜欢的水果是什么?\ n");fgets(水果,100,std ..
发布时间:2021-05-06 20:59:28 其他开发

实现strcmp

我尝试实施 strcmp : int strCmp(char string1 [],char string2 []){int i = 0,标志= 0;而(flag == 0){如果(string1 [i]> string2 [i]){标志= 1;} 别的如果(string1 [i] ..
发布时间:2021-04-27 19:35:18 其他开发