博主不定期更新【保研/推免、C/C++、5G移动通信、Linux、生活随笔】系列文章,喜欢的朋友【点赞+关注】支持一下吧!
strchr函数
常用的几种形式
char *strchr(const char *s, int c);//从左往右找某个字符第一次出现的位置
char *strrchr(const char *s, int c);//从右往左找某个字符第一次出现的位置
//找到则返回一个指针,该指针指向该字符的位置;返回NULL(0)表示没有找到
char *strstr(const char *s1, const char *s2);//字符串中找字符串
char *strcasestr(const char *s1, const char *s2);//忽略大小写查找
1.查找某个字符第一次出现的位置
#include <stdio.h>
#include <string.h>//使用字符串相关函数时需要包含此头文件
int main()
{
char s[] = "hello";
char* p = strchr(s, 'l');
printf("%s\n", p);
return 0;
}
2.查找某个字符第二次出现的位置
#include <stdio.h>
#include <string.h>
int main()
{
char s[] = "hello";
char* p = strchr(s, 'l');
p = strchr(p+1, 'l');//将指针p右移一位,继续寻找
printf("%s\n", p);
return 0;
}
3.输出某个字符前面的字符串
#include <stdio.h>
#include <string.h>
#include <stdlib.h>//使用malloc函数需包含此头文件
int main()
{
char s[] = "hello";
char* p = strchr(s, 'l');
char c = *p;//将*p存在字符c中,是为了输出结果之后恢复字符串s
*p = '\0'; //将p所指的位置强制变为字符串的结尾
/***将s拷贝到t中,输出t;也可以直接输出s***/
char *t = (char*)malloc(strlen(s)+1);//给字符串t分配空间
strcpy(t,s);
printf("%s\n", t);
free(t);//释放malloc分配的空间;有malloc就别忘了free
return 0;
}
4.Result
第一个程序输出:llo
第二个程序输出:lo
第三个程序输出:he