请看一段有冗余的代码:
...
int ifBQ = 0;
while (*src != 0)
{
if (*(src+1) == '\0') // 冗余部分
break;
if (strncasecmp(*content, "B?", 2) == 0) {
ifBQ = 1;
break;
}
if (strncasecmp(*content, "Q?", 2) == 0) {
ifBQ = 2;
break;
}
src++;
}
...
作者的思路是以为strncasecmp不能处理如strncasecmp("h", "?Q", 2)的代码。
其实在strncasecmp的手册中,我们可以看到:
... not more than n bytes from the string pointed to by s1 to ...
可见这个比较函数中第三个参数,是让两个字符处比较不超过n个字符,而并非一定要比较那么多个字符。没有内存访问越界的问题。
为了验证这个结论,我们可以做如下测试:
[dinghuaneng@176 test]$ cat test.c
#include <stdio.h>
#include <string.h>
int main(void)
{
char *str1 = "h";
if (strncasecmp(str1, "hello", strlen("hello")) == 0)
printf("find hello!\n");
else
printf("None\n");
return 0;
}
运行结果:
[test@pctest]$ ./test
None</string.h></stdio.h>
分享到:
相关推荐
strcmp函数strcmp函数strcmp函数strcmp函数strcmp函数strcmp函数strcmp函数strcmp函数strcmp函数strcmp函数strcmp函数strcmp函数strcmp函数strcmp函数strcmp函数strcmp函数strcmp函数strcmp函数strcmp函数strcmp函数...
请求编写一个函数int STRCMP(char *source, char *dest),实现字符串比较。如果两个字符串相等则返回0,否则返回-1; 编程要求: 1,请不要使用直接调用相关的库函数等等,应自己编写处理逻辑; 2,程序通过控制台...
设计Strcmp(s,t)算法,实现两个字符串s和t的比较。
大连理工大学数据结构上机题设计strcmp(s,t)算法,实现两个字符串s和t的比较设计strcmp(s,t)算法,实现两个字符串s和t的比较
strlen、strcpy和strcmp源码
用一个函数实现两个字符串的比较,即自己写一个 strcmp 函数
设计Strcmp(s,t)算法,实现两个字符串s和t的比较。
本文为您详细介绍了2024年C语言中strcmp函数的使用和实现细节,旨在帮助开发者掌握字符串比较的关键技术。内容涵盖strcmp函数的基本用法、工作原理、注意事项、示例代码、安全性、性能、多字节字符集处理、面试题、...
strcmp函数是C语言中的一个字符串比较函数,用于比较两个字符串是否相等。它的函数原型如下: int strcmp(const char *str1, const char *str2); 其中,str1和str2是要比较的两个字符串。 strcmp函数返回一个整数值...
如何使用 strcmp() 函数比较两个字符串并输出比较结果
Linux内核完全剖析汇编strcmp代码 编写中遇到问题,参考blog:http://blog.csdn.net/u012509728/article/details/50404424 在此对作者表示感谢~
strcmp 函数重定义, 改写函数, 字符串逆序输出单词
```strcmp(a, b)``` 就是比较字符串a和字 符串b在字典中的顺序。 如果字符串a和字符串b完全相同,那么返回值为0。 如果字符串a在字典中比字符串b先出现,那么返回值小于0。 如果字符串a在字典中比字符串b后出现...
要按字节顺序进行字符串的比较,可以使用strcmp()和strcasecmp()两个函数,其中函数strcasecmp()可以忽略字符串中字母的大小写进行比较。这两个函数的原型如下所示: 复制代码 代码如下: in strcmp(string str1,...
C语言中strcpy_strcmp_strlen_strcat函数原型
数据结构上机作业 第二章17题 张宪超 数据结构算法及应用
调用函数对字符串str1和str2进行比较,其中,str1和str2可以是字符数组,也可以是字符串常量,函数将返回一个整型值。
strcmp函数使用
本文实例讲述了PHP中strcmp()和strcasecmp()函数字符串比较用法。分享给大家供大家参考,具体如下: 一、PHP中strcmp()函数用于比较两个字符串(区分大小写),其定义如下: strcmp(string1,string2) 参数说明: ...
strcpy,strcat,strcmp,strlen,strchr