目录

strcat的用法及原型

strcpy的用法及原型

strcmp用法及原型

strlen用法及原型


strcat的用法及原型

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

strcat用法如下

#include <stdio.h>
#include <string.h>int main ()
{char src[99], dest[99];strcpy(src,  "This is source");strcpy(dest, "This is destination");strcat(dest, src);printf("最终的目标字符串: %s", dest);return 0;
}

输出结果:This is sourseThis is destination

strcat函数的原型如下

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

dev c++调试代码如下

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

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

strcpy的用法及原型

strcpy(str1,str2)是将字符串str2复制到str1中去。

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

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

strcpy的用法如下

#include <stdio.h>
#include <string.h>int main ()
{char str1[]="Sample";char str2[99];char str3[99];strcpy (str2,str1);strcpy (str3,"copy successfully");printf ("str1: %s\nstr2: %s\nstr3: %s\n",str1,str2,str3);return 0;
}

输出结果为 str1:Sample

str2:   Sample

str3:    copy successfully

strcpy的原型在这里

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

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

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

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>int main ()
{char str1[99];char str2[99];int ret;strcpy(str1, "abcdefF");strcpy(str2, "ABCDEFF");ret = strcmp(str1, str2);if(ret < 0){printf("str1 小于 str2");}else if(ret > 0) {printf("str1 大于 str2");}else {printf("str1 等于 str2");}return 0;
}

运行结果:str1大于str2

strcmp原型如下

int strcmp (const char *str1,const char *str2)
{           int len = 0;while(*str1 && *str2 && (*str1 == *str2)){str1++;str2++;}return *str1-*str2;
}

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

#include <stdio.h>
int strcmpa (const char *str1,const char *str2)
{           int len = 0;while(*str1 && *str2 && (*str1==*str2)){str1++;str2++;}return *str1-*str2;
}int main(void)
{char str1[99] = {"AA"};char str2[99] = {"aa"};printf("%d\n",strcmpa(str1,str2));
}

strlen用法及原型

strlen用于记录字符串长度。

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

strlen用法实例在这里:

#include <stdio.h>
#include <string.h>int main ()
{char str[99];int len;strcpy(str, "You are my destiny");len = strlen(str);printf("%s的长度是 %d\n", str, len);return 0;
}

strlen原型如下

int strlen(char *str)
{int len = 0;while(*str++){len++;}return len;
}

dev c++调试过程如下 函数名用strlenn代替


#include <stdio.h>
int strlenn(char *str)
{int len = 0;while(*str++){len++;}return len;
}
int main(void)
{char str[99] = {"You are my destiny"};printf("%d\n",strlenn(str));
}

刚学敲代码的大一小白在此 有不好的地方烦请大家指正~熬夜打字不易 谢谢大家喜欢呀 希望能对你有所帮助❤

c语言字符串函数strcat strcpy strlen strcmp的用法及原型相关推荐

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

    点击蓝字 关注我们 因公众号更改推送规则,请点"在看"并加"星标"第一时间获取精彩技术分享 来源于网络,侵删 strcat(str1,str2) 意为将字符串s ...

  2. C语言字符串函数strcat,strcpy详解

    目录 一.CSDN解释: 1.strcat: 2.strcpy 二.strcat和strcpy 参数的理解 三.注意事项和使用 1.strcat注意事项: 2.代码: 3.补充思考: 4.strcpy ...

  3. C语言字符串函数----strcat()函数用法

    字符串函数<string.h> strcat函数 strcat()函数用于拼接字符串 , 该函数接受两个字符串作为参数. 其函数原型 char *strcat (char *str1,co ...

  4. C语言字符串函数大全

    转载自http://www.360doc.com/content/08/0723/22/26860_1462024.shtml# C语言字符串函数大全 函数名: stpcpy 功能: 拷贝一个字符串到 ...

  5. C语言字符串函数及如何实现这些函数

    C语言字符串函数及如何实现这些函数 ​ 近期在复习C语言字符串相关的知识,在观看了 翁恺 老师的 C语言程序设计 课程后,打算对C语言标准库以及 string.h 内的函数进行整理,并写出自己的实现方 ...

  6. 关于c语言字符串函数和一些内存函数的的简介

    关于c语言字符串函数和一些内存函数的的简介 求字符串长度的函数 strlen函数介绍![在这里插入图片描述](https://img-blog.csdnimg.cn/20190301142458376 ...

  7. C语言——字符串函数

    C语言--字符串函数 宗旨:技术的学习是有限的,分享的精神是无限的. 常用字符串操作函数的实现:注释部分你们注意一下,我没加/,加了/就看不到注释了. ************************ ...

  8. c语言字符串英文,C语言字符串函数大全(国外英文资料).doc

    C语言字符串函数大全(国外英文资料) C语言字符串函数大全(国外英文资料) It's all the same -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ...

  9. C语言字符串函数(3)strstr,strtok函数的详解

    上一期,我讲解了关于字符串函数中,受限制的字符串函数,有想了解的小伙伴们可以点此链接去看看:C语言字符串函数(2)受限制的字符串函数 那么今天,我来讲一讲标题中这两个函数的作用和使用方法. 目录 一. ...

最新文章

  1. 平衡二叉树-AVL c/c++代码实现
  2. wireshark从入门到精通(协议排错安全篇)4
  3. noip模拟赛 蒜头君的兔子
  4. 2019CCF自主可控计算机大会召开 中科院院士吁自力更生
  5. 今天,你用智能音箱了吗?
  6. new Vue 发生了什么?
  7. linux Enterprise5 添加删除程序无法正常使用 解决
  8. 《jQuery Mobile快速入门》—— 1.6 可主题化的设计
  9. asp.net 用正则表达式过滤内容中的电话,qq,email
  10. Qt编写自定义控件29-颜色选取面板
  11. 计算机名的更改是灰色解决方案
  12. spring mybatis 各版本源码下载地址
  13. 清除Conficker蠕虫病毒详细步骤
  14. VIRTUALBOX无法加载USB移动设备的解决方法
  15. Hadoop-day01_(java代码模拟hadoop存储数据)
  16. NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE翻译
  17. Markdown 图片排版
  18. pwr | 谁说样本量计算是个老大难问题!?(二)(独立样本均值篇)
  19. javac错误: 找不到符号或程序包XXX不存在
  20. 永中word页码怎么从第二页开始_word转pdf软件有哪些?word转pdf软件怎么操作?

热门文章

  1. 2019最新抖音全方位数据分析报告
  2. Qt中使用多线程并返回结果到主线程的例子
  3. CAAI名誉理事长李德毅院士谈机器的生命观
  4. 锤炼腹肌的好方法:健腹轮的折叠刀式俯卧撑
  5. LAN-Cruising
  6. IVMS-5000海康平台安装
  7. AUTO CAD出现无法识别的版本,如何解决?
  8. 虚拟化服务器授权,VMware授权变相收费? 虚拟化一大障碍
  9. STM32学习心得二十一:实时时钟RTC和备份寄存器BKP特征、原理及相关实验代码解读
  10. 数据结构易混点、易错点、题目(个人向)