c语言string.h中常用的strlen、strcmp、strcpy、strcat、strtok、strstr函数用法

本篇介绍c语言的string.h中常用的strlen、strcmp、strcpy、strcat、strtok、strstr函数用法。
更多资料请点击:我的目录

strlen函数: (计算字符长度)

size_t strlen(const char *s);

用于计算字符串长度,*s为指向字符数组的值,所以括号内只需要填入数组名即可。

#include <stdio.h>
#include <string.h>

int main()
{
	char str1[120], str2[120];
	printf("请输入第一个字符串:");
	scanf("%s",str1);
	printf("str1 == %ld\n",strlen( str1 ));
	printf("\n请输入第二个字符串:");
	scanf("%s",str2);
	printf("str2 == %ld\n",strlen( str2 ));
	return 0;
}

在这里插入图片描述

strcmp函数:(比较字符串)

int strcmp(const char *s1, const char *s2);

比较字符数组str1与str2的大小,返回值为整型数值,(str1 = = str2)返回值为0,(str1 != str2)返回值就不为0。

#include <stdio.h>
#include <string.h>

int main()
{
	char str1[10] = "mmmm";
	char str2[10] = "mmmm";
	printf("str1 == %s\n", str1 );
	printf("str2 == %s\n", str2 );
	printf("%d\n",strcmp(str1 ,str2));
	
	return 0;
}

相等时返回值0
不等时
不等时

strcpy函数:(复制字符串)

char *strcpy(char *dest, const char *src);
char *strncpy(char *dest, const char *src, size_t n);

dest为目标字符数组,src为源字符数组,n为前n位(长度)
将一个字符数组str2[]内容复制到另外一个字符数组str1[]中,如果另一个字符数组str1不为空,即先清空石str1内容,再进行复制。

str1为空时:

#include <stdio.h>
#include <string.h>

int main()
{
	int n;
	char str1[120],str2[]="i am jiajia";
	strcpy(str1,str2);
	//strncpy(str1, str2, n);	//n为位数设定,将str2的前n位复制到str1中
	printf("%s\n",str1);
	printf("%s\n",str2);
	return 0;
}

输出结果
str1不为空时:

#include <stdio.h>
#include <string.h>

int main()
{
	char str1[120], str2[120];
	scanf("%s",str1);
	scanf("%s",str2);
	strcpy(str1, str2);
	printf("str == %s\n",str1);
	return 0;
}

输入给str1[]的“jaijia”,在最后输出时并没有出现:
在这里插入图片描述

strcat函数:(拼接字符串)

char *strcat(char *dest, const char *src);
char *strncat(char *dest, const char *src, size_t n);

将源字符串src,拼接到dest目标字符串之后,n设置长度。

#include <stdio.h>
#include <string.h>

int main()
{
	char str1[10] ;
	char str2[10] ;
	printf("请输入第一个字符串:");
	scanf("%s",str1);
	printf("请输入第二个字符串:");
	scanf("%s",str2);
	printf("拼接后字符串:%s\n",strcat(str1 ,str2));
//	printf("拼接后字符串:%s\n",strncat(str1 ,str2,5));
	
	return 0;
}

strcat
strncat(拼接前5位)

strtok 函数:(分隔字符串)

char *strtok(char *str, const char *delim);

根据 分隔标志delim 对 源字符串str 进行分隔。

#include <stdio.h>
#include <string.h>

int main()
{
	char str1[100] ;

	printf("请输入一个字符串:");
	scanf("%s",str1);

	printf("字符串第一次分割: %s\n", strtok ( str1, "d"));
	printf("字符串第二次分割: %s\n", strtok ( NULL, "h"));
	printf("字符串第三次分割: %s\n", strtok ( NULL, "l"));
	//如果分隔完毕,再次进行分隔,strtok函数会返回 NULL
	return 0;
}

在这里插入图片描述

strstr函数:(查找字符串)

char *strstr(const char *haystack, const char *needle);

在 源字符串haystack 中定位 被查找字符串needle ,有对应的字符串就返回该字符串的地址,没有找到就返回NULL。

#include <stdio.h>
#include <string.h>

int main()
{
	char str1[100] ;

	printf("请输入一个字符串:");
	scanf("%s",str1);
	
	if(strstr(str1, "jiajiage") != NULL )
	{
		printf("%s\n",strstr(str1, "jiajiage"))	;
	}
	else		//(strstr(str1, "jiajiage") == NULL
	{	
		printf("Not Found!\n");
	}	
	return 0;
}

在这里插入图片描述
在这里插入图片描述

更多资料请点击:我的目录

发布了75 篇原创文章 · 获赞 35 · 访问量 5923

猜你喜欢

转载自blog.csdn.net/weixin_43793181/article/details/103927888