【C语言】字符串函数讲解

🦄个人主页:-雷阵雨-

🦄专栏:c语言

⚙️作环境:Visual Studio 2019

目录

一:前言

二:字符串函数 

 一:gets()函数

二:puts()函数

三: strcat()函数

四: strcpy()函数 (strncpy()函数)

五:strcmp()函数

六: strlen()函数

七: strstr()函数

八:strtok()函数

三:总结


一:前言

本篇博客为大家叙述一些重要的字符串函数讲解。

包括: gets(),puts() , strcat() , strcpy() , strcmp() , strlen() ,  strstr() , strtok() 。

 注意做笔记:在使用字符串函数处理函数时,必须使用头文件<string.h>

二:字符串函数 

 一:gets()函数

get(字符数组)函数—输入字符串函数,就类似于scanf()。

作用:从终端输入一个字符串到字符数组。

 代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
int main()
{
	char str[10];
	gets(str);
	printf("%s", str);
	return 0;
}

二:puts()函数

puts(字符数组)函数—输出字符串函数。

作用:输出字符串到终端(“\0”之前所有字符)。

 代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
int main()
{
	char str[10];
	gets(str);
	/*printf("%s", str);*/
	puts(str);
	return 0;
}

三:strcat()函数

strcat()函数:

 strcat()函数参数:destination为目标字符串,sourse为源字符串。

作用:将源字符串,追加到目标字符串的末尾。

const 起到定值的作用

 代码如下:

int main()
{
	char str1[20] = "hello";
	char str2[10] = "world";
	strcat(str1, str2);
	printf("%s", str1);
	return 0;
}

注意1:目标空间要有“\0”;目标空间足够大。

           2:源字符串必须要有“\0"。

           3:最好自己不要给自己追加。

四:strcpy()函数 (strncpy()函数)

strcpy()函数:

strcpy()参数: destination为目标字符串,sourse为源字符串。

代码如下:

int main()
{
	char str1[20] = "hellooo";
	char str2[20] = "world";
	strcpy(str1, str2);
	printf("%s", str1);
	return 0;
}

注意: 

          1:目标空间要有“\0”;目标空间足够大。

           2:源字符串必须要有“\0"。

           3:也会将与字符串的“\0”拷贝到目标空间

           4:直接覆盖。下面我说一个可以有字符限制的覆盖strncpy()。

 strncpy()函数:

 代码如下:

int main()
{
	char str1[20] = "hellooo";
	char str2[20] = "world";
	strncpy(str1, str2,4);
	printf("%s", str1);
	return 0;
}

 编译后,我要求打印4个字符拷贝到str1,其余的部分str1自动补充。

五:strcmp()函数

 strcmp()函数:

 字符串比较不可以直接用操作符进行比较,必须使用库函数进行比较。

 比较规则:

 代码如下:

int main()
{
	char str1[20] = "aellooo";
	char str2[20] = "aorld";
	int d = strcmp(str1, str2);
		if (d==0)
		{
			printf("两字符串相等");
		}
		else if (d > 0)
		{
			printf("1");
		}
		else
		{
			printf("-1");
		}
	
	return 0;
}

因为在strcmp函数中判断传递一个随机值,因为只有三种判断区间,索性直接赋给三个值。 

六:strlen()函数

strlen()函数:

注意重点:求字符串长度,是以字符串“\0”作为结束标志,返回“\0前面出先的字符个数” (不包括“\0”)。

必须以“\0”结束。

代码如下:

int main()
{
	char str1[20] = "hellooo";
	char str2[20] = "world";
	printf("%d", strlen(str1));
	return 0;
}

七:strstr()函数

strstr()函数:

就相当于字符串中找字符串,然后返回找到首次出现的地址。

代码如下:
 

int main()
{
	char str1[20] = "hellooo";
	char str2[20] = "ell";
	char* ret = strstr(str1, str2);
	if (ret != NULL)
	{
		printf("%s", ret);
	}
	else
	{
		printf("找不到");
	}

	return 0;
}

注意:在strstr()中的两个参数是数组的地址,然后用用指针接收。 

八:strtok()函数

strtok()函数:

 这个定义好繁琐,我的理解:首先有两个数组,一个是我需要分割的数组,另一个是我分割数组所用的元素(其实大部分就是字符),然后用第二个数组去把第一个分割,然后返回的是首指针,并打印,当在正在扫描的字符串中到达字符串的末尾(即空字符)时,始终返回空指针。

代码如下:

int main()
{
	char str1[20] = "he@llo.oo";
	char cop[20];
	strcpy(cop, str1);
	char str2[] = "@.";
	char* ret = NULL;
	for (ret = strtok(cop, str2); ret != NULL; ret = strtok(NULL, str2))
	{
		printf("%s\n",ret);
	}
	return 0;
}

我们不要去使用原数组,我们重新拷贝一个。 

三:总结

字符串里面我在我感觉就是strcpy(),strstr()常用,就是有时候“\0”一定要对,在对字符串求长,追加,对"\0"要求还是很严格。

把字符串和字符数组加以辨别,就是“\0”的有无。

有不足之处,望佬纠正,感谢❀

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值