其他分享
首页 > 其他分享> > 15.字符串的查询

15.字符串的查询

作者:互联网

字符串的查询-strchr

char* strchr(const char* str, int c);
参数说明:

#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