一、strtok()函数
头文件:#include”string.h>
函数原型:char *strtok(char *str, const char *flag);
函数功能:切割成若干个字符串
函数说明:第一次调用函数str为需要被切割字符串的首地址;在之后调用则传入NULL,否则每次都将会从字符串的开头进行切割。flag参数为分隔符,即需要在什么地方进行切割。函数的返回值为本次切割后得到的字符或字符串的地址。当到达str字符串末尾时函数返回NULL
请看下面简单代码:
#include<string.h>
#include<iostream>
using namespace std;
#define STRLEN 128
void CutCmd(char *cmd, char **argv)
{
int count = 0;
char *p = strtok(cmd," ");
while(p != NULL)
{
argv[count++] = p;
if(count == STRLEN)
{
return;
}
p = strtok(NULL," ");
}
}
int main()
{
//指针数组,用以存放切割后的字符串
char *argv[STRLEN] = {0};
char cmd[] = {"ab c def g"};
CutCmd(cmd,argv);
//输出
int i = 0;
while(argv[i] != NULL)
{
cout<<argv[i++]<<endl;
}
return 0;
}
运行结果:
函数底层:strtok函数在切割字符串时遇到分隔符后,就会把分隔符的第一个字符替换为’\0’并返回切割后字符串的首地址。
菜鸟一枚,若有错误,望各位大佬高抬贵手哈哈哈