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
分享到:
相关推荐
应用cfree软件,分别采用标准库函数strcmp()和定义求串比较函数的两种方法,求串比较。
STRCMP STRCMP()函数是MySQL里比较字符串的最简单方式之一。这个函数接受两个参数——要被比较的字符串。如果这个两个字符串相同,它就返回0;如果第一个大于第二个,它就返回1;如果第一个小于第二个,它就返回-1 ...
脚本中可调用函数,函数分为系统函数和自定义函数两种;系统函数可直接调用;自定义函数需在脚本中自行定义 该组件可用编写字符串和数字运算处理脚本,供运行时调用获取执行结果 1、组件调用的方式可以参考 main.c ...
要求用三种模式匹配算法分别实现: 朴素的模式匹配算法(BF算法) KMP改进算法(Next[ ]) KMP改进算法(NextVal[ ]) 实验机时:8 设计要求: 首先设计一个含有多个菜单项的主控菜单程序,然后再为这些菜单项...
或者使用strcmp来判断,但是这个能够告诉你两个字符串是否相等,但是无法告诉你在哪里不同。一般能用 !=, == 比较两个对象是否相等,之所以说是两个对象,是因为他们不一定全部为字符串,也能为整型等等。比如复制...
Strcpy(),strcat(),strcmp(),strncpy(),strncat(),strncmp()内部到底是如何运行的?这些函数到底对源字符串和目标字符串做了些什么?你是否观察过它们运行时两个字符串内存的变化? 上面这些函数使用时,各有哪些...
26.19 strcmp函数 26.20 strcoll函数 26.21 strcpy函数 26.22 strcspn函数 26.23 strerror函数 26.24 strlen函数 26.25 strncat函数 26.26 stmcmp函数 26.27 strncpy函数 26.28 strpbrk函数 26.29 strrchr函数 26.30...
∷相关函数:strcmp函数 1.1.18 字符串的抽取 36 范例1-18 字符串的抽取 36 ∷相关函数:substr函数 1.1.19 字符串的分割 38 范例1-19 字符串的分割 38 ∷相关函数:partition函数 1.1.20 字符串的插入 40 ...
∷相关函数:strcmp函数 1.1.18 字符串的抽取 36 范例1-18 字符串的抽取 36 ∷相关函数:substr函数 1.1.19 字符串的分割 38 范例1-19 字符串的分割 38 ∷相关函数:partition函数 1.1.20 字符串的插入 40 ...
∷相关函数:strcmp函数 1.1.18 字符串的抽取 36 范例1-18 字符串的抽取 36 ∷相关函数:substr函数 1.1.19 字符串的分割 38 范例1-19 字符串的分割 38 ∷相关函数:partition函数 1.1.20 字符串的插入 40 ...
void compare() //两复数比较函数 { CComplex num1,num2; cout输入两个复数\n"; cout第一个复数:"; cin>>num1; cout输入第二个复数\n"; cin>>num2; if(num1==num2) cout这两个复数相等\n"; else if(num1>num2) cout...
(注:以上代码为结合MATLAB工具箱函数pburg,arburg两个功率谱估计函数增加而得,修改后的pburg等函数会在附件中示意,名为pburgwithcriterion) 登录/注册后可看大图 程序1.JPG (35.14 KB, 下载...
( c ) 可以在程序的任何地方 (d) 必须在其它函数中间 2.用C++语言编制的源程序要变为目标程序必须要经过( d )。 (a) 解释 (b) 汇编 (c) 编辑 (d) 编译 3.C++程序基本单位是( c )。 (a) 数据 (b) 字符 (c) ...
我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针。可我找不到任何方法来声明这样的函数——感觉我需要一个返回指针的函数,返回的指针指向的又是返回指针的函数……,如此...
4.7.1l实例38:字符串函数库文件string.h中的strcmp()函数应用举例 4.8C语言的编译预处理 4.8.1常用预处理命令介绍 4.8.2实例39:宏定义应用举例 4.8.3实例40:文件包含应用举例 4.8.4实例41:条件编译应用举例 习题...
我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针。可我找不到任何方法来声明这样的函数——感觉我需要一个返回指针的函数,返回的指针指向的又是返回指针的函数……,如此...
(请至少说明两种) 答: (1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 (2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它...