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);elseprintf("%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;
}