strcmp函数的两种实现,gcc测试通过。
一种实现:
#include<stdio.h>
int strcmp(const char *str1,const char *str2)
{
/* 注释以下的五行(while循环)可以简写为:
* for(;(*str1==*str2)&&*str1!='\0';str1++,str2++);
* */
while((*str1==*str2)&&*str1!='\0')
{
str1++;
str2++;
}
if(*str1=='\0'&&*str2=='\0') return 1;
else return -1;
}
int main()
{
char *st1="abdefg";
char *st2="abcdefg";
printf("%d\n",strcmp(st1,st2));
char *st3="12345";
char *st4="12345";
printf("%d\n",strcmp(st3,st4));
return 0;
}
另一种实现:
#include<stdio.h>
int strcmp(const char *str1,const char *str2)
{
while(str1!=NULL&&str2!=NULL)
{
while(*str1++==*str2++)
{
if(*str1=='\0'&&*str2=='\0') return 1;
}
return -1; //不等的情况
}
return -2; //有指针为空的情况
}
int main()
{
char *st1="abdefg";
char *st2="abcdefg";
printf("%d\n",strcmp(st1,st2));
char *st3="12345";
char *st4="12345";
printf("%d\n",strcmp(st3,st4));
char *st5="xyz",*st6=NULL;
printf("%d\n",strcmp(st5,st6));
return 0;
}
May contact with me by e-mail: AllenNewOK@126.com
分享到:
相关推荐
- **原生`strcmp`函数简介**:`strcmp`是C语言中的一个内置函数,用于比较两个字符串。如果两个字符串相等,则返回0;如果第一个字符串在字典顺序上比第二个字符串小,则返回负数;反之则返回正数。 - **自定义`...
### strcmp函数应用详解 在C语言中,`strcmp`函数是一种非常重要的字符串处理函数,用于比较两个字符串。本文将深入探讨`strcmp`函数的基本用法、工作原理以及一个实际的应用案例。 #### 基本用法 `strcmp`函数...
在这个“strcmp函数应用”的资料包中,我们可以看到几个关键元素,包括一个`.exe`可执行文件,一个`.c`源代码文件,一个`.o`目标文件,以及一个名为`G2`的未知类型文件,可能是其他源代码或资源文件的一部分。...
我们可能会有疑问,“我们是否可以实现当我们发送一个指令时,单片机收到并对比我们所需要的指令,如果是我们需要的,立即执行我们所写下的代码”strcmp 函数是 C 语言标准库中的一个函数,用于比较两个 C 风格字符...
`strcmp`函数是C语言标准库中的一个基本函数,专门用于比较两个字符串。此函数被广泛应用于多种编程场景,如数据验证、字符串处理以及各种需要进行字符串比较的算法中。下面将详细介绍`strcmp`函数的工作原理、参数...
本篇将探讨两种在C语言中进行串比较的方法:使用标准库函数`strcmp()`和自定义比较函数`mystrcmp()`。 1. **标准库函数`strcmp()`**: C语言的标准库`<string.h>`提供了`strcmp()`函数,用于比较两个字符串。`...
本文将深入解析五个常用的C语言函数:`strcpy`、`memcpy`、`memmove`、`strcat`和`strcmp`的实现原理与功能特性,这些函数在处理字符串复制、连接、比较以及内存拷贝时扮演着关键角色。 ### 1. `strcpy` - 字符串...
这里给出了两种实现方式:`strcpy_1` 和 `strcpy_2`。 ##### `strcpy_1` ```c char *strcpy_1(char *dst, const char *src) { while (*dst++ = *src++); return dst; // notice: wrong return!!!! } ``` **问题...
strcmp函数用于比较两个字符串,返回一个整数来表示比较结果。如果两个字符串相等,返回0;如果第一个不匹配的字符在第一个字符串中的ASCII值大于第二个字符串中对应的字符,则返回正值;反之,返回负值。在实现...
《深入理解C++中的strcmp函数与时间差攻击》 在C++编程中,`strcmp`函数是用于比较两个字符串是否相等的重要工具。它的工作原理是逐个字符地比较两个字符串,直到找到不匹配的字符或者遇到空字符'\0'。然而,这个...
接下来我们将详细分析两种不同的`strcmp`实现方式,并讨论其工作原理。 ### 标签:strcmp.txt 标签进一步强调了文档的主题——`strcmp`函数的实现与应用。 ### 部分内容分析 #### 第一种实现方法 ```c int ...
// 将strcmp函数的地址赋给函数指针 ``` 七、递归函数 递归函数是一种调用自身的函数,通常用于解决需要反复进行相同操作的问题。但要注意,过度使用递归可能导致栈溢出。 八、匿名函数(Lambda表达式) 虽然...
strcmp函数有两种形式,一种需要两个字符串参数,另一种则需要三个字符串参数,但后者已经不再被推荐使用。当我们使用两个字符串参数的形式时,该函数会逐个字符比较两个字符串。字符串的比较是基于ASCII值进行的,...
与`strnatcmp()` 相对的是 `strcmp()` 函数,它是PHP中基础的字符串比较函数,它按照字典顺序逐字节地比较两个字符串,不考虑数字的自然顺序。例如,`strcmp("2.jpg", "10.jpg")` 会返回1,因为按照字节顺序,“2....
4、strcmp 函数:用于比较两个字符串是否相同。 5、stricmp 函数:用于区分大小写比较两个字符串。 6、strstr 函数:用于在一个字符串中查找另一个字符串。 7、strlwr 函数:用于将字符串转换为小写。 8、strupr...
2. **字符串处理**:C语言中的字符串是以'\0'结尾的字符数组,strcat()用于连接两个字符串,strcpy()复制一个字符串到另一个,strcmp()比较两个字符串的大小。strchr()和strstr()分别用于查找单个字符和子字符串。 ...
strcmp 函数是字符串比较函数之一,它可以比较两个字符串是否相等。该函数的原型为: `int strcmp(char * str1,char * str2)` 函数功能:比较两个字符串 str1,str2。 函数返回:str1,返回负数;str1=str2,返回 0...
例如,strcpy用于复制字符串,strlen用于计算字符串的长度,strcmp用于比较两个字符串是否相等。 3. 数学函数:在头文件math.h中,C语言提供了一组标准的数学运算函数,它们用于执行各种数学计算,如sin、cos、tan...
这里给出了两种方法,一种是使用C语言的标准库函数`strcpy()`,另一种是自定义一个名为`mystrcpy()`的复制函数。 ### 方法一:使用标准库函数`strcpy()` `strcpy()`是C语言标准库`string.h`中的函数,用于将源字符...
《C语言常用函数速查工具》包含的CHM和CHW文件,是两种常见的帮助文档格式。CHM是Microsoft的HTML Help Compiler生成的压缩式帮助文件,包含了索引、目录和全文搜索等功能,便于用户快速查找所需信息。而CHW则是早期...