900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > C语言字符串函数strcat | strcpy | strlen | strcmp的用法及原型

C语言字符串函数strcat | strcpy | strlen | strcmp的用法及原型

时间:2021-01-24 18:35:04

相关推荐

C语言字符串函数strcat | strcpy | strlen | strcmp的用法及原型

点击蓝字

关注我们

因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享

来源于网络,侵删

strcat(str1,str2)意为将字符串str2连接到字符串str1之后

strcat用法如下

#include<stdio.h>#include<string.h>intmain(){charsrc[99],dest[99];strcpy(src,"Thisissource");strcpy(dest,"Thisisdestination");strcat(dest,src);printf("最终的目标字符串:%s",dest);return0;}

输出结果:This is sourseThis is destination

strcat函数的原型如下

char*strcat(char*strDest,constchar*strScr)//将源字符串加const,表明其为输入参数{char*p=strDest;//将目的字符串数组赋给pif(strDest==NULL||strScr==NULL)//对原地址和目的地址加非0断言returnstrDest;while(*p)//是while(*p!=’\0’)的简化形式{p++;}while(*strsource!=0){*p=*strScr;p++;//依次++以进行连接strScr++;}*p='\0';//有无必要?returnstrDest;//为了实现链式操作,将目的地址返回}

dev c++调试代码如下

#include<stdio.h>#include<string.h>char*strcat(char*strDest,constchar*strScr)//将源字符串加const,表明其为输入参数{char*p=strDest;//将目的字符串数组赋给pif(strDest==NULL||strScr==NULL)//对原地址和目的地址加非0断言returnstrDest;while(*p)//是while(*p!=’\0’)的简化形式{p++;}while(*strScr!=0){*p=*strScr;p++;//依次++以进行连接strScr++;}*p='\0';//有无必要?returnstrDest;//为了实现链式操作,将目的地址返回}intmain(){charstr1[99]="The";charstr2[99]="One";printf("%s\n",strcat(str1,str2));return0;}

输出结果为TheOne 如果怀疑strcat函数本身发挥作用的话可以将调用的函数名称改成strcate之类的 结果也一样哦 来 试试看~

strcpy的用法及原型strcpy(str1,str2)是将字符串str2复制到str1中去。

其原型char *strcpy(char *dest, const char *src)把 src 所指向的字符串复制到 dest。

需要注意的是如果目标数组 dest 不够大,而源字符串的长度又太长,可能会造成缓冲溢出的情况。

关注公众号:C语言中文社区,免费领取300G编程资料

strcpy的用法如下

#include<stdio.h>#include<string.h>intmain(){charstr1[]="Sample";charstr2[99];charstr3[99];strcpy(str2,str1);strcpy(str3,"copysuccessfully");printf("str1:%s\nstr2:%s\nstr3:%s\n",str1,str2,str3);return0;}

输出结果为 str1:Sample

str2: Samplestr3: copy successfully

strcpy的原型在这里

char*strcpy(char*strDest,constchar*strScr){char*p=strDest;if(strDest==NULL||strScr==NULL)//对原地址和目的地址加非0断言returnstrDest;while(*strScr)//是while(*strScr !=’\0’)的简化形式;{*strDest++=*strScr++;}*strDest='\0';//当strScr字符串长度小于原strDest字符串长度,时,如果没有改语句,//就会出错了returnstrDest;}

dev c++调试过程 strcpy用strcpye代替

#include<stdio.h>#include<string.h>char*strcpye(char*strDest,constchar*strScr){char*p=strDest;if(strDest==NULL||strScr==NULL)//对原地址和目的地址加非0断言returnstrDest;while(*strScr)//是while(*strScr !=’\0’)的简化形式;{*strDest++=*strScr++;}*strDest='\0';//当strScr字符串长度小于原strDest字符串长度,时,如果没有改语句,//就会出错了returnstrDest;}intmain(){charstr1[]="Sample";charstr2[99];strcpye(str2,str1);printf("str1:%s\nstr2:%s\n",str1,str2);return0;}

strcmp用法及原型 strcmp用于比较字符串。int strcmp(const char *str1, const char *str2)把 str1 所指向的字符串和 str2 所指向的字符串进行比较。

其中str1和str2可以是字符串常量或者字符串变量,返回值为整形。返回结果如下规定:

① str1小于str2,返回负值;

② str1等于str2,返回0;

③ str1大于str2,返回正值;

strcmp函数实际上是对字符的ASCII码进行比较:首先比较两个字符串的第一个字符,若不相等,则停止比较并得出两个ASCII码大小比较的结果;如果相等就接着向后第二个字符,以此类推。无论两个字符串是什么样,strcmp函数最多比较到其中一个字符串遇到结束符'/0'为止,就能得出结果。

特别注意:strcmp(const char *str1,const char * str2)这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。

规定返回值为正数,负数,0 。而确切数值是依赖不同的C实现的。

当两个字符串不相等时,C 标准没有规定返回值会是 1 或 -1,只规定了正数和负数。

有些会把两个字符的 ASCII 码之差作为比较结果由函数值返回。

strcmp用法如下:

#include<stdio.h>#include<string.h>intmain(){charstr1[99];charstr2[99];intret;strcpy(str1,"abcdefF");strcpy(str2,"ABCDEFF");ret=strcmp(str1,str2);if(ret<0){printf("str1小于str2");}elseif(ret>0){printf("str1大于str2");}else{printf("str1等于str2");}return0;}

运行结果:str1大于str2

strcmp原型如下

intstrcmp(constchar*str1,constchar*str2){intlen=0;while(*str1&&*str2&&(*str1==*str2)){str1++;str2++;}return*str1-*str2;}

dev c++调试代码如下 strcmp用strcmpa代替

#include<stdio.h>intstrcmpa(constchar*str1,constchar*str2){intlen=0;while(*str1&&*str2&&(*str1==*str2)){str1++;str2++;}return*str1-*str2;}intmain(void){charstr1[99]={"AA"};charstr2[99]={"aa"};printf("%d\n",strcmpa(str1,str2));}

strlen用法及原型 strlen用于记录字符串长度。

strlen(const char *str)计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。

strlen用法实例在这里:

#include<stdio.h>#include<string.h>intmain(){charstr[99];intlen;strcpy(str,"Youaremydestiny");len=strlen(str);printf("%s的长度是%d\n",str,len);return0;}strlen原型如下intstrlen(char*str){intlen=0;while(*str++){len++;}returnlen;}devc++调试过程如下函数名用strlenn代替#include<stdio.h>intstrlenn(char*str){intlen=0;while(*str++){len++;}returnlen;}intmain(void){charstr[99]={"Youaremydestiny"};printf("%d\n",strlenn(str));}

如果你年满18周岁以上,又觉得学【C语言】太难?想尝试其他编程语言,那么我推荐你学Python,现有价值499元Python零基础课程限时免费领取,限10个名额!

▲扫描二维码-免费领取

戳“阅读原文”我们一起进步

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。