0
点赞
收藏
分享

微信扫一扫

字符串函数(持续更新)

青乌 2022-04-24 阅读 89
c语言

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

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

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

目录

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

其它求字符串长度函数

length()函数

size()函数

strlen()函数

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

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

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

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


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

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

其它求字符串长度函数

length()函数

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

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

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

运行结果就是

6

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

但是如果这样写

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

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

size()函数

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

string s= "asdfghjkl";
printf("%d\n", s.size());

运行结果就是:

9

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

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

vector <int> 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));

 输出结果为:

举报

相关推荐

0 条评论