15.字符串的查询
作者:互联网
字符串的查询-strchr
char* strchr(const char* str, int c);
参数说明:
- str:被查找的字符串。
- c:要查找的字符。
strchr() 函数会依次检索字符串 str 中的每一个字符,直到遇见字符 c,或者到达字符串末尾(遇见\0)。
返回值:返回在字符串 str 中第一次出现字符 c 的位置,如果未找到该字符 c 则返回 NULL。
#include<stdio.h>
#include<string.h>
int main()
{
char ch[] = "abcdefg";
strchr(ch, 'd');//在ch中查找字符d,如果找到,返回d所在的地址,如果查询失败,返回空
char * p = strchr(ch, 'd');
if (p == NULL)
{
printf("查询失败\n");
}
else
{
printf("p = %s", p);//defg
printf("p[0] = %c", p[0]);//d
}
char ch2[] = "abcdefghijk";
strchr(ch2, 'd');//在ch中查找字符串cde,如果找到,返回字符串所在的地址,如果查询失败,返回空
char * p = strstr(ch2, "cde");
if (p == NULL)
{
printf("查询失败\n");
}
else
{
printf("p = %s", p);//
}
}
字符串的切割-strtok
char *strtok(char *s, const char *delim);
分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。
从s开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。
注:第一次调用strtok函数时,这个函数将忽略间距分隔符并返回指向在strToken字符串找到的第一个符
号的指针,该符号后以NULL字符结尾.通过调用一系列的strtok函数,更多的符号将从strToken字符串中分
离出来.每次调用strtok函数时,都将通过在找到的符号后插入一个NULL字符来修改strToken字符串.为了
读取strToken中的下一个符号,调用strtok函数时strToken参数为NULL,这会引发strtok函数在已修改过
的strToken字符串查找下一个符号.
#include<stdio.h>
#include<string.h>
int main()
{
char ch[] = "abc, mike, jiang, 250";
char ch1[100];
strcpy(ch1, ch);
//第一次调用,第一个参数写原字符串,返回值就是切割后的字符串,
//在匹配切割字符的地方,换成结束符
//使用strtok会破坏原来字符串的结构
char * p = strtok(ch, ",");
printf("%s", p);
printf("%s\n", ch);
//第二次调用,第一个参数应该为NULL
p = strtok(NULL, ",");
printf("%s", p);
//需要使用循环
char ch2[] = "abc, mike, jiang, yuan, jing, 359";
char * q;
q = strtok(ch2, ",");
while(q != NULL)
{
printf("q = %s", q);
//第二次调用
q = strtok(NULL. ",");
}
}
标签:ch,15,strtok,查询,char,printf,字符串,NULL 来源: https://www.cnblogs.com/best-you-articles-040612/p/16022958.html