LinuxC字符串操作的基本使用
展开全文
Linux C 字符串操作的基本使用
所属头文件:<string.h>
0、获取字符串长度:int strlen(char *s)
int strlen(char *s)
molloc函数函数说明:此函数用于获取s的长度,不包括'\0'注:切记最好保证s的尾部是'\0',strlen函数读到'\0'会自动停止然后统计字符数
返回值:字符数
1、查指定的字符:index函数,rindex函数,strchr函数 strrchr(其中index函数和strchr函数基本相同,rindex函数和strchr函数相同)
(1)char *index(const char* s, char c) char *strchr(const char* s, char c)
函数说明:index函数用于查字符串s中第一个出现c字符的地址,然后将该字符的地址返回.strchr函数与index相似
返回值:若到指定到字符则返回该字符的地址,否则返回0
举例:
char s[] = "abcdeabcde";
char *sdest = NULL;
sdest = index(s,'d');
printf("sdest: %s\n",sdest);
输出结果:sdest: deabcde
(2)char *rindex(const char* s, char c) char *strrchr(const char* s, char c)
函数说明:类似于index函数,但是他是从字符串开始查字符c,并返回从字符串尾部开始第一个符合条件的字符的地址(strrchr与rindex相似)
返回值:同index一样
举例:
char s[] = "abcdeabcde";
char *sdest = NULL;
sdest = rindex(s,'d');
printf("sdest: %s\n",sdest);
输出结果:sdest: de
2、查满足条件字符串中任意一个字符:strpbrk函数
char *strpbrk(const char *s, const char *accept)
函数说明:查s字符串第一个符合accept字符串中任意一个字符的字符的地址
返回值:符合条件的字符的地址
举例:
char s[] = "abcdefgefgbe";
char t[] = "omgf";
char *d = NULL;
d = strpbrk(s,t);//应该会从s中到‘f'字符的地址
if(d != 0)
{
printf("原字符串: %s\n",s);
printf("获得到字符串: %s\n",d);
}
输出结果:
原字符串: abcdefgefgbe
获得到字符串: fgefgbe
3、统计字符串中连续包含或不包含指定字符串内容到字符数:strspn函数 ,strcspn函数
(1)size_t strspn(const char *s, const char *accept)
函数说明:从s的开头开始计算连续的字符,这些字符都属于accept中字符,遇到不是accept中的字符则停止,并返回字符个数n,即代表s开始处有连续n个属于accept字符串的字符.
返回值:返回s字符串起始位置开始连续属于accept字符串的字符个数
举例:
char s[] = "abcdefgefgmmmmmbbe";
char t[] = "bcdaefg";
int inumber = 0;
inumber = strspn(s,t);
printf(" %d\n",inumber);
输出结果:10
(2)size_t strcspn(const char *s,const char *reject)
函数说明:与strspn相反,从s的开头开始计算连续不属于reject的字符数,并返回字符个数n,即代表s开头处有n个不属于accept字符串的字符。
返回值:返回s字符串起始位置开始连续不属于accept字符串到字符个数
举例:
char s[] = "abcdefgefgmqmmmmbbe";
char t[] = "mq";
int inumber = 0;
inumber = strcspn(s,t);
printf(" %d\n",inumber);
输出结果:10
4、查指定字符串:char *strstr(const char *s, const char *need);
函数说明:从s中到与need匹配到子字符串,并将该子字符串的地址返回
返回值:匹配的子字符串的起始地址
举例:
char s[] = "abcdefgefgmqmmmmbbe";
char t[] = "fge";
char *score = NULL;
score = strstr(s,t);
printf(" %s\n",score);
输出结果:
fgefgmqmmmmbbe
5、字符串分割:char *strtok(char *s, const char *delim)
函数说明:strtok函数将s按照delim字符串中的字符分割成一个个子字符串,对于字符串s,当遇到delim中到字符,则将该字符替换成'\0'然后返回'\0'之前的字符串子串。若继续分割,则将第一个参数设置为NULL,程序会从上一次分割结束的位置('\0'之后)开始继续分割,若已经无法分割则返回NULL
返回值:分割所得到子字符串的地址.,若无法分割则返回NULL
举例:
char s[] = "abc:bcd:ef bg_op fq:yz_dd";
char t[] = ": _";
char *score = NULL;
/*第一次调用*/
if((score = strtok(s,t)) == NULL)
{
printf("failed!\n");
return 0;
}
printf("%s;",score);
/*继续分割,将第一个参数这是为NULL*/
while((score = strtok(NULL,t)))
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论