C语言字符串处理函数

一、strlen、strcat、strcpy、strcmp、gets、puts定义

Strlen:求字符串长度,遇到’\0’就结束,不算’\0’,比如:”abcd”长度是4

Strcat:拼接两个字符串的,char str1[10] = “abc”,char str2[10] = “edf”; “edf” ,str1:”abcedf”

Strcpy:拷贝字符串的,char str1[10] = “abc”,char str2[10] = “ed”; “ed” ,str1:”ed”

Strcmp:比较字符串大小的,”abc”和”abbc”,从左至右依次比较字符的ASCII值,“abc” > “abbc”

使用scanf和printf需要加stdio这个头文件,使用字符串处理函数,需要加string.h这个头文件。

gets(str1) 功能和scanf(“%s”, str1)一样,gets遇到回车就结束,scanf是遇到回车或者空格就结束

puts(str1)功能和printf(“%s\n”, str1)一样,puts自动会输出’\n’,但是printf需要自己加’\n’才输出’\n’

二、应用

1、strcat代码实现

strcat:拼接两个字符串的,char str1[10] = “abc”,char str2[10] = “edf”; “edf” ,str1:”abcedf”

str2的’e’把str1的’\0’覆盖掉,并且把str2的’\0’也拷贝过去了

strcat(目的字符数组, 源字符数组/源字符串);

Strncat(目的字符数组, 源字符数组/源字符串, n);

功能:将源字符串的前n个字符连接到目标字符数据的后面,注意目标字符数组最后要有’\0’

2、strcpy代码实现

Strcpy:拷贝字符串的,char str1[10] = “abc”,char str2[10] = “ed”; “ed” ,str1:”ed”

将str2的’e’’d’和’\0’都拷贝到str1中了

Strcpy(目的字符数组,源字符数组/源字符串);

Strncpy(目的字符数组,源字符数组/源字符串, n);

功能:将源字符串的前n个字符拷贝到目标字符数组,其余不变

3、strcmp代码实现

Strcmp:比较字符串大小的,”abc”和”abbc”,从左至右依次比较字符的ASCII值,“abc” > “abbc”

Strcmp(字符数组1/字符串1, 字符数组2/字符串2);

比较规则:依次比较两个字符串的字符的ascii值,直到不相等或者是两个都是’\0’

返回值:

      大于0    字符串1 > 字符串2

      小于0     字符串1  < 字符串2

      等于0    字符串1 == 字符串2

Strncmp(字符数组1/字符串1, 字符数组2/字符串2,n);

功能:比较字符串1和字符串2的前n个字符

结束小彩蛋:

(1)Char str[] = {‘a’, ‘b’, ‘c’, ‘d’, ‘e’};  //error,没有结束符,‘e’后面是什么未知

正确写法:Char str[6] = {‘a’, ‘b’, ‘c’, ‘d’, ‘e’};

(2)Char str[] = {‘a’, ‘b’, ‘c’, ‘d’, ‘e’};   //error,str的大小是5

正确写法:Char str[] = {‘a’, ‘b’, ‘c’, ‘d’, ‘e’,’\0’};

(3)Char str[5] = “abcde”;  //error,有’\0’,因为加上’\0’占了6个字节,但str只有5个字节

正确写法:Char str[6] = “abcde”;

(4)Char str[] = “abcde”; //right,有’\0’,str占了6个字节

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值