C语言常见字符串处理string.h库函数strstr、strchr、strcat、strcmp、strcpy、strlen的介绍

目录

strstr

声明

返回值

strchar

声明

返回值

strchr和strstr的差别

strcat

声明

返回值

strcmp

声明

返回值

strcpy 

声明

返回值

strlen

声明

返回值


strstr

声明

char *strstr(const char *haystack, const char *needle) //strstr函数声明

//用来查找haystack字符串中是否有needle字符串

其中haystack是被查找的字符串,needle是要在haystack中查找的字符串

函数可以用来查找在haystack中第一次出先needle的位置

返回值

返回在 haystack 中第一次出现 needle 字符串的位置,如果未找到则返回 null。

#include 
#include 
main(){
	char a[20]="hi world";
	char b[20]="wo";
	printf("%s",strstr(a,b));
}

//运行结果
world

在本例中,strstr返回的是w的位置,输出w位置后的字符串。

strchar

声明

char *strchr(const char *str, int c) //strchr的函数声明

//用来查找str字符串中是否有c字符

str是被查询的字符串,c是要在str字符串内查询的字符,

返回值

返回在 str 中第一次出现 字符c的位置,如果未找到则返回 null。

#include 
#include 
main(){
	char a[20]="hi world";
	char b='w';
	char c='i';
	char d=' ';
	printf("%s\n",strchr(a,b));
	printf("%s\n",strchr(a,c));
	printf("%s",strchr(a,d));
}

//运行结果
world
i world
 world

在本例中查找了两个字符,分别是'i'、'w'和' ',strchr分别返回'i'、'w'和' '第一次出现的位置

strchr和strstr的差别

strchr查询的一个字符第一次出现的位置,strstr查询的是一个字符串第一次出现的位置

strcat

声明

char *strcat(char *dest, const char *src) //strcat的函数声明

//将dest字符串和src字符串接在一起,需要注意的是,dest对应的字符串必须可以容纳下追加的字符串

其中dest是被追加的字符串,src是要往dest字符串上追加的字符。追加就是不改变dest字符串的内容,将src写到dest字符串的末尾,相当于两个字符串连接在一起。

返回值

该函数返回一个指向最终的目标字符串 dest 的指针。

#include 
#include 
main(){
	char s[20]="abcd";
	char *sp=s;
	sp++;
	puts(strcat(sp,"ABCD"));
}

//运行结果
bcdABCD

sp++后指针sp指向s字符串中b的位置,将"ABCD"追加到s字符串的末尾,输出时从sp指向的位置开始输出字符串。

strcmp

声明

int strcmp(const char *str1, const char *str2) //strcmp函数的声明

//比较两个字符串,根据str1和str2的值大小返回对应的值

返回值

  • 如果返回值小于 0,则表示 str1 小于 str2。
  • 如果返回值大于 0,则表示 str1 大于 str2。
  • 如果返回值等于 0,则表示 str1 等于 str2。
#include 
#include 
main(){
	char a[]="1234";
	char b[]="12345";
	char c[]="12345";
	printf("%d\n",strcmp(a,b));
	printf("%d\n",strcmp(b,a));
	printf("%d\n",strcmp(b,c));
}

//运行结果
-1
1
0

strcpy 

声明

char *strcpy(char *dest, const char *src) //strcpy函数的声明

//复制src指向的内容到dest指向的字符串中

将src中的内容复制到dest对应字符串内

返回值

该函数返回指向最终的目标字符串 dest 的指针。

#include 
#include 
main(){
	char a[]="abcd";
	char b[]="ABC";
	char *s=a;
	s++;
	printf("%s\n",strcpy(s,b));
	puts(a);
}

//运行结果
ABC
aABC
//strcpy返回s指针对应的地址

s的地址指向的是a字符数组中的b,所以strcpy复制了b数组中的字符到a数组中b位置。

strlen

声明

size_t strlen(const char *str) //strlen的函数声明

//计算字符串的长度,碰到'\0'结束,不包括'\0'

返回值

字符串的实际长度

#include 
#include 
main(){
	char a[]="abcde";
	printf("%d",strlen(a));
}

//运行结果
5

上述用到的代码可直接运行验证,所用编译环境为Dev-C++5.11

你可能感兴趣的:(c语言,开发语言)