相关函数 index,rindex,strchr,strpbrk,strrchr,strsep,strspn,strstr ,memchr
1:index()函数
首先说明:index()函数是Linux下的字符串函数,不是标准库的,所以在VC++6.0上是使用不了的。
表头定义:#include<string.h>
函数定义:char * index(const char *s,intc);
函数说明:index()是用来找出参数s字符串中第一个出现的参数c的地址,然后将该字符出现的地址返回。字符串结束符(NULL)也被视为字符串的一部分。
返回值:如果找到指定的字符则返回该字符所在的地址,否则返回0。
源码:(在http://codepad.org/ar45j86G(C在线编译器测试通过))
输出:
2:rindex()函数
首先说明:rindex()函数是Linux下的字符串函数,不是标准库的,所以在VC++6.0上是使用不了的。
表头定义:#include<string.h>
函数定义:char *rindex(const char*s,int c);
函数说明:rindex()是用来找出参数s字符串中最后一个出现的参数c的地址,然后将该字符出现的地址返回。字符串结束符(NULL)也被视为字符串的一部分。
返回值:如果找到指定的字符则返回该字符所在的地址,否则返回0。
源码:(在http://codepad.org/ar45j86G(C在线编译器测试通过))
结果:
3:strchr()函数
表头定义:#include<string.h>
函数定义:extern char * strchr(const char*s,int c);
extern char * strchr(const char *s,char c);
函数说明:strchr()是用来找出参数s字符串中第一个出现的参数c的地址,然后将该字符出现的地址返回。字符串结束符(NULL)也被视为字符串的一部分。
返回值:如果找到指定的字符则返回该字符所在的地址,如果不存在则返回NULL。
源码:(在VisualC++ 6.00中运行通过)
#include <string.h>
int main()
{
char*s = "0123456789aaaaaaaaaaaa012345678901234567890";
char*p;
p= strchr(s, 'a');
printf("源字符串内容:%s\n", s);
printf("源字符串内容:%p\n", s);
printf("第一次出现的字符后的内容:%s\n", p);
printf("第一次出现的字符的地址:%p\n", p);
return0;
}
结果:
4:strrchr()函数
表头定义:#include<string.h>
函数定义:extern char * strrchr(constchar *s,int c);
extern char * strrchr(const char *s,char c);
函数说明:strrchr()是用来找出参数s字符串中最后一个出现的参数c的地址,然后将该字符出现的地址返回。字符串结束符(NULL)也被视为字符串的一部分。
返回值:如果找到指定的字符则返回该字符所在的地址,如果不存在则返回NULL。
源码:(在Visual C++ 6.00中运行通过)
#include <string.h>
int main()
{
char*s = "0123456789aaaaaaaaaaaa012345678901234567890";
char*p;
p= strrchr(s, 'a');
printf("源字符串内容:%s\n", s);
printf("源字符串内容:%p\n", s);
printf("最后一次出现的字符后的内容:%s\n", p);
printf("最后一次出现的字符的地址:%p\n", p);
return0;
}
结果:
5:memchr()函数
表头定义:#include<string.h>
函数定义:extern void *memchr(void*str,char ch,unsigned count);
函数说明:memchr()函数是从str所指内存区域的前count个字节查找字符ch,当第一次遇到字符ch时停止查找。如果成功,返回指向字符ch的指针;否则返回NULL。
返回值:返回void*类型指针(或者NULL).
源码:(在Visual C++ 6.00中运行通过)
#include<string.h>
#include<stdio.h>
int main()
{
char *str="Hello,I am sky2098,I liking programing!";
char ch='k' ; //指定一个字符
void *voidtemp;
voidtemp=memchr(str,ch,strlen(str));
if(voidtemp!=NULL)
{
printf("查找成功!\n ");
printf("原字符串的地址:%p\n",str);
printf("第一次出现的字符的地址:%p\n",voidtemp);
}
else
{
printf("Search Failure!\n ");
}
return 0;
}
结果: