【C/C++基础】string.h字符串标准库常用函数

string.h常用函数

使用时需要包含头文件<string.h>

#include <string.h>

本文介绍了3个常用函数

  • strcat()
  • strcmp()
  • strlen()

扩展了strlen()sizeof()的却比

(1) strcat(字符数组1,字符数组2)

作用:链接两个字符数组中的字符串,把字符串2链接到字符串1后边,结果放在字符数组1中。不要搞反了,是把右边连接到左边的屁股后边去。

说明:

(a)字符数组1必须足够大,能够容纳连接后的新字符串。

(b)连接之前两个字符串后面都有一个\0,连接时将字符串1后i那的\0取消,连接后旨在新字符串最后保留一个\0;

char str1[10] = "one" ;   //这里不少于7个字符

char str2[10] = "two" ;

strcat(str1, str2);

(2)strcpy(字符数组1,字符数组2)

作用:将字符串2拷贝到字符数组中去。字符数组1中的内容将被覆盖,不要搞反了,是把右边的内容往左边拷贝。

说明:

(a)字符数组1必须足够大,一边能够容纳下被拷贝的字符串,也就是说字符数组1的长度不能小于字符串2的长度。

(b)字符数组1必须是个数组名字符串2可以是个数组名字,也可以是个字符串常量

©拷贝的时候是连同字符串后边的\0也一起拷贝到字符数组中去;

(d)不能用赋值语句将一个字符串常量或者字符数组直接赋给一个字符数组

赋值语句只能将一个字符赋值给一个字符型变量或者数组元素a[2] = 'A' ;

char str1[20] = "one1234";   //定义的时候初始化

char str2[15] = "twoxxxxxxx";

strcpy(str1, str2);   //str1的大小,一定不要小于str2

strcpy(str1, "China");

//str = "China";  错误示例,不能直接赋值

//str1 = str2;   错误示例

/*区分*/

char str1[20] = "one1234";   //定义的时候初始化

str1 = "China";              //赋值

(3)strcmp(字符串1,字符串2)

作用:比较字符串1和字符串2

说明:

(a)如果字符串1=字符串2,该函数返回0

(b)如果字符串1>字符串2,返回一个正整数 1

©如果字符串1<字符串2,返回一个负整数 -1

比较规则:对两字符串从左到右逐个字符比较(按ASCII码值大小比较),一直到出现不同的字符或者遇到\0为止;若全部字符相同,则认为相等,若出现不相同的字符,则以第一个不相同的字符比较结果为准。

int reco;

char str1[10] = "one1234";

char str2[10] = "ope1";

reco= strcmp(str1, str2);     //-1

if(str1 == str2)   //如果这么比较就是比地址了

if(strcmp(str1,str2) == 0)   //内容比较

(4)strlen(字符数组) 重点

作用:测试字符串长度的函数(遇到\0就停止),函数的值是字符串的实际长度,但是不包括\0,返回的单位是字节。

char str1[120] = "ope1";

char str2[120] = "断电abc停着";

int len1 = strlen(str1);

int len2 = strlen(str2);

int len3 = strlen("我爱China");

sizeof()

int a;   //不管你a中保存的是什么内容

int soa = sizeof(a);   //a所占的内存字节数,和a中保存的内容无关。

int sob = sinzeof(int);   //4(字节)

int dob = sizeof(double);   //8

int streso = sizeof(str1);   //120,和内容无关,数组长度

GzEYy8.png

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值