C语言中查找字符在字符串中出现的位置的方法
C语言strchr()函数:查找某字符在字符串中首次出现的位置
头文件:#include<string.h>
strchr()用来查找某字符在字符串中首次出现的位置,其原型为:
char*strchr(constchar*str,intc);
【参数】str为要查找的字符串,c为要查找的字符。
strchr()将会找出str字符串中第一次出现的字符c的地址,然后将该地址返回。
注意:字符串str的结束标志NUL也会被纳入检索范围,所以str的组后一个字符也可以被定位。
【返回值】如果找到指定的字符则返回该字符所在地址,否则返回NULL。
返回的地址是字符串在内存中随机分配的地址再加上你所搜索的字符在字符串位置。设字符在字符串中首次出现的位置为i,那么返回的地址可以理解为str+i。
提示:如果希望查找某字符在字符串中最后一次出现的位置,可以使用strrchr()函数。
【实例】查找字符5首次出现的位置。
#include<stdio.h> #include<stdlib.h> #include<string.h> intmain(){ char*s="0123456789012345678901234567890"; char*p; p=strchr(s,'5'); printf("%ld\n",s); printf("%ld\n",p); system("pause"); return0; }
输出结果:
12016464 12016469
C语言strrchr()函数:查找某字符在字符串中最后一次出现的位置
头文件:#include<string.h>
strrchr()函数用于查找某字符在字符串中最后一次出现的位置,其原型为:
char*strrchr(constchar*str,intc);
【参数】str为要查找的字符串,c为要查找的字符。
strrchr()将会找出str字符串中最后一次出现的字符c的地址,然后将该地址返回。
注意:字符串str的结束标志NUL也会被纳入检索范围,所以str的组后一个字符也可以被定位。
【返回值】如果找到就返回该字符最后一次出现的位置,否则返回NULL。
返回的地址是字符串在内存中随机分配的地址再加上你所搜索的字符在字符串位置。设字符在字符串中首次出现的位置为i,那么返回的地址可以理解为str+i。
提示:如果希望查找某字符在字符串中第一次出现的位置,可以使用strchr()函数。
实例:查找字符5最后一次出现的位置。
#include<stdio.h> #include<stdlib.h> #include<string.h> intmain(){ char*s="0123456789012345678901234567890"; char*p; p=strrchr(s,'5'); printf("%ld\n",s); printf("%ld\n",p); system("pause"); return0; }
执行结果:
12999504 12999529