目录
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 <stdio.h>
#include <string.h>
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 <stdio.h>
#include <string.h>
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 <stdio.h>
#include <string.h>
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 <stdio.h>
#include <string.h>
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 <stdio.h>
#include <string.h>
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 <stdio.h>
#include <string.h>
main(){
char a[]="abcde";
printf("%d",strlen(a));
}
//运行结果
5
上述用到的代码可直接运行验证,所用编译环境为Dev-C++5.11