前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++ 字符串操作函数

C++ 字符串操作函数

作者头像
chaibubble
发布2019-05-26 19:48:20
2.5K0
发布2019-05-26 19:48:20
举报

由于字符串使用广泛,C和C++提供了一些字符串函数,包括字符串连接函数strcat,字符串复制函数strcpy,字符串比较函数strcmp,字符串长度函数strlen,在C语言中被定义在string.h中定义。在C++中被定义在cstring和string中。

关于string.h,cstring和string的区别:

string.h 是C版本的头文件,包含比如strcpy、strcat之类的字符串处理函数。

cstring 在C++标准化(1998年)过程中,为了兼容以前,标准化组织将所有这些文件都进行了新的定义,加入到了标准库中,加入后的文件名就新增了一个”c”前缀并且去掉了.h的后缀名,所以string.h头文件成了cstring头文件。所以,string.h,cstring并没有什么太大的区别,小的区别还是有的,在下面就会说到一个不同。

string 是C++标准定义的头文件,它定义了一个string的字符串类,里面包含了string类的各种操作,如s.size(), s.erase(), s.insert()等。但又包含了老的C版本的字符串操作如strcpy、strcat等,这就相当于,在的文件中除了定义自己的string类之外,还加了一个#include<string.h>一句包含了C版本的字符串操作。

字符串连接函数 strcat

函数原型为

strcat(char[],const char[]); 

stract及string catenate,该函数有两个字符数组参数,注意该函数的第二个参数被声明为const,以保证数组中的内容不会再函数调用期间修改。连接后的字符串放在第一个字符数组中。

 char str1[20] = "chai"; 
 char str2[] = "bubble"; 
 cout<< strcat(str1,str2);

字符串复制函数 strcpy

函数原型为 :

strcpy(char[],const char[]);

stract及string copy,该函数将第二个字符数组中的字符串复制到第一个字符数组,如果第一个字符数组中有内容的话,会被覆盖。

char str1[20] ;
char str2[] = "chaibubble"; 
cout<< strcpy(str1,str2);

注意: 1.strcpy函数第二个参数可以字符串数组名,也可以是一个字符串常量。

strcpy(str1,"chaibubble");

2.strcpy函数可以将一个字符串中前若干个字符复制到一个字符串数组中。

 strcpy(str1,str2,3);

这个功能在C语言中是可以实现,在<string.h>中定义的strcpy函数支持三个参数的传入,但是在C++中,不管是<cstring>还是<string>都不支持3个参数

3.如果用字符数组的形式定义字符串,那么该字符串不允许使用赋值符号,因为变量名代表的其实是数组的地址。

字符串比较函数 strcmp 函数原型为 :

strcpy(const char[],const char[]);

比如:

strcpy(str1,str2);

如果字符串1等于字符串2,函数值为0; 如果字符串1大于字符串2,函数值为正整数; 如果字符串1小于字符串2,函数值为负整数;

大小的依据是直到出现第一个不同的字符时,比较该字符的ASCII码大小。

字符串长度函数 strlen

函数原型为 :

strlen(const char[]);

注意输出的是字符串的实际长度,不包括’\0’。

char str[20] = "chaibubble";
cout << strlen(str);

此时的输出为10,不是11,也不是20。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年02月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档