常用字符串处理函数

本文介绍了C语言中的基本字符串操作函数,如puts用于输出字符串,gets和fgets用于输入,strcat连接字符串,strcpy和strncpy进行复制,strcmp比较字符串,以及strlen计算字符长度,强调了安全性与空间管理的重要性。
摘要由CSDN通过智能技术生成

一.输出字符串——puts

        #一般形式#

                puts(字符数组)

        #作用#

                将一个字符串输出到终端 -> 将字符串打印出来(遇\0结束)

        #示例#
char str[20]="China";
puts(str); 

二.输入字符串——gets

        #一般形式#

                gets(字符数组)

        #作用#

                输入一个字符串到字符数组(一个字符为一个数组元素)

                注:使用gets函数可以获得整一行的输入(包括空格

        #潜在问题#

                · 使用gets可能是不安全的

                · 使用gets没法限制输入的字符串长度,则有可能造成数组内存在越界,产生缓冲区溢出

                 (使用scanf用%s输入字符串时也会出现此问题)

                · 此时,可用fgets来替代gets   |      char *fgets(char *buf, int bufsize, FILE *stream)

                                                                  |       当输入字符长度超过数组开辟的空间长度时,                                                                                    会在读取第(n-1)个字符时自动停止

          #示例#
	char s[10];
	fgets(s,10,stdin);
	puts(s);
	printf("%d\n",sizeof(s));
	printf("%d\n",strlen(s));

三.字符连接函数——strcat

        #一般形式#

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

        #作用#

                其作用是把两个字符串连接起来,把字符串2接到字符串1#的后面

                结果放在字符数组1中(故而要求字符数组1的空间要足够大)

        #示例#
	char str1[30]="People";
	char str2[]="China";
	printf("%s", strcat(str1,str2)); 

四.字符串复制函数1——strcpy

        #一般形式#

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

        #作用#

                将字符串2复制到字符数组1中(故字符数组1要足够大)(遇\0即停止复制)

        #示例#

                

    char str1[10],str2[]="China";
	strcpy(str1,str2); 
	printf("%s\n", str1);
	strcpy(str1,"China"); //等价。故括号后既可以放数组名也可以放字符串常量 
	printf("%s", str1);

四.字符串复制函数2——strncpy

        #一般形式#

​​​​​​​                strncpy(str1,str2,2);

        #作用#

                将str2中最前面2个字符复制到str1中,取代str1中原有的最前面2个字符                                          (复制的字符个数n不应多于str1中原有的字符)

        #示例#
	char str1[10],str2[]="China";
	strncpy(str1,str2,2);

五.字符比较函数——strcmp

        #一般形式#

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

        #作用#

                比较字符串1和字符串2

        #比较规则#

                · 将两个字符串自左至右逐个字符相比,直到出现不同的字符或遇到’\0’为止

                · 比较的结果由函数值带回。

                        | 字符串1=字符串2        则返回0

                        | 字符串1>字符串2        则返回一个正整数

                        | 字符串1<字符串2        则返回一个负整数

        #示例#
if(str1>str2)  
	printf("yes");//Error
if(strcmp(str1, str2) > 0)
	printf("yes");//Correct

六.计算字符长度函数——strlen

        #一般形式#

                strlren(字符数组/字符串常量)

        #作用#

                测试字符串长度的函数(函数的值为字符串中的实际长度)

        #示例#
    char str[10]="China";
    printf("%d\n",strlen(str));
    printf("%d",strlen("China"));

              

​​​​​​​

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值