c语言中string.h的strstr与strtok函数
- 代码
- 运行结果
代码
#include <stdio.h>
#include <string.h>
///1.在字符串str1里面,查找第一次出现str2的位置
//char * strstr(const char * str1,const char * str2)
///2.sep为分割符,根据分割符来对str进行分割
//char * strtok(char * str,const char * sep);
int main()
{
/*******************strstr-begin****************/
char arr1[64] = {"redmi and xiaomi,are you ok?"};
char arr2[16] = {"xiaomi"};
char * ret = strstr(arr1, arr2);
if(ret == NULL)
printf("i do not find %s\n",arr2);
else
printf("%s\n",ret);//输出:xiaomi,are you ok? =>很明显,找到后并从那里截断
/*******************strstr-end****************/
/*******************strtok-begin****************/
const char *str = "123456789@goole.com";
const char *sep = {"1.@"};//分隔符
char arr[30] = {0};
char *result = NULL;
strcpy(arr,str);
for(result = strtok(arr,sep); result!= NULL ;result = strtok(NULL,sep))
{
printf("result:[%s]\n",result);
}
/***
* 输出结果:
* result:[23456789]
* result:[goole]
* result:[com]
* 输出分析:
* 第一步:1.@为3个"独立"的分隔符
* 第二步:1[切一刀] 23456789@[切一刀] goole.[切一刀] com
* 第三步:1[切一刀]消失 @[切一刀]消失 .[切一刀]消失
* 第四步:剩下了: 23456789 goole com =>答案
*/
/*******************strtok-begin****************/
return 0;
}