栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

字符串函数(持续更新)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

字符串函数(持续更新)

最近写代码发现对于字符串的处理有很多函数都不会使用,想借此来巩固和分享一些要注意的。

开始也是最重要的,使用字符串函数需要加上头文件 #include

定义字符串的相关的需要注意的地方已经在之前的文章中提到过(后续还会增加关于指针定义的方法)

目录

strlen() : 获取一个字符串的长度

其它求字符串长度函数

length()函数

size()函数

strlen()函数

strcmp(str1,str2):判断字符串str1和str2是否相同

如果str1和str2相同,则返回值为0

如果str1大于str2,则返回值为1

如果str1小于str2,则返回值为-1

strcat(str1,str2):字符串连接函数

 strcpy(str1,str2):字符串复制函数



strlen() : 获取一个字符串的长度

需要注意的问题是它的使用方法

其它求字符串长度函数

length()函数
char a[]="asdfg";
printf("%d",a.strlen());

这个就是和C++中的length()函数搞混了。在C++中是需要声明string型变量,才可以用length()函数来进行求长度,如:

string str = "abcdef";
printf("%d", str.length());

运行结果就是

6

要注意的是这里是不会包括结束字符‘’

但是如果这样写

char s[] = "asdfghjkl";
printf("%d", s.length());

就会报错,所以需要注意函数的用法。

size()函数

然后要补充的是size()函数,同样也可以求字符串的长度,不过也只能求string声明变量的函数,如:

string s= "asdfghjkl";
printf("%dn", s.size());

运行结果就是:

9

同样也没有包含结束符‘’

除此之外还可以求用vector定义的数组的长度

vector  m = {1,2,3,4,5};
printf("%d", m.size());

结果是

5

strlen()函数

我们再回到正题strlen()函数的用法

strlen(字符串名称)

这个函数只适用于数组求长度,string类型定义的函数则不适用,如:

char a[] = "123456";
printf("%d", strlen(a));

输出结果为

6

而如果这样定义:

string b = "qwertt";
printf("%d", strlen(b));

语法就有错误

 所以计算字符串长度一定要选择正确的计算长度的方法。

strcmp(str1,str2):判断字符串str1和str2是否相同

需要注意的是在C语言中不可直接使用 (不过现在很多编译器都有改进,比如vs2022这样的语法可以允许)

str1==str2

判断两个字符串是否相同应使用函数strcmp(str1,str2)

如果str1和str2相同,则返回值为0
char str1[] = "abcdef";
char str2[] = "abcdef";
printf("%d", strcmp(str1, str2));

输出结果为:

如果str1大于str2,则返回值为1
char str1[] = "abcdefg";
char str2[] = "abcdef";
printf("%d", strcmp(str1, str2));

 输出结果为:

要注意的是这里比较的不是字符串的长度,而是一一比较每个字母的ASCⅡ码,比如:

char str1[] = "g";
char str2[] = "abcdef";
printf("%d", strcmp(str1, str2));

输出结果为: 

这是因为g的ASCⅡ码的值大于a,所以str1>str2

如果str1小于str2,则返回值为-1

同样是一一比较每个字母的ASCⅡ码如:

char str1[] = "abcdef";
char str2[] = "g";
printf("%d", strcmp(str1, str2));

 输出结果为:

strcat(str1,str2):字符串连接函数

将str2连接到字符串str1后面,如:

char a[100] = "hello ";
char b[] = "world";
strcat(a, b);
printf("%s", a);

输出结果为:

 

注意要保证str1有足够的空间来存储str2,否则会出现溢出报错。如:

a只能容纳6个元素,而a和b一起有11个元素,所以会报错。

 strcpy(str1,str2):字符串复制函数

将str2的内容赋值给str1,如:

char a[] = "hello  ";
char b[] = "Ni Hao";
strcpy(a, b);
printf("%s", a);
return 0;

输出结果为:

当然这个也要注意str1的长度可以容纳下str2,否则也会报错,如:

a只能容纳5个元素,而b有6个元素,所以会报错。

上面的几个函数strlen(str),strcmp(str1,str2),strcpy(str1,str2)都只能适用于C语言中的字符数组,C++中的string类型都不适用。当然C++中string类型的方法也更加灵活。

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/832672.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号