学习目标
学习掌握字符串切割函数strtok
学习内容
字符串切割函数
strtok:strtok(char*str,const char *c)
-str:源字符串
*c:需要切割的字符
返回值:切割完字符串的首地址
注意:
第一次切割时必须传入源字符串
后面传入空指针即可,每次调用成功返回切割出来的片段的指针
学习代码
建议直接从代码中学习,实践出真知
#include<iostream>
#include <cstring>
#pragma warning(disable:4996)
using namespace std;
//strtok
int main() {
char arr[20] = "add 10 20";
char* p[5] = {arr, nullptr };
//方式1
//int i = 0;
//p[i] = strtok(arr, " ");
//cout << p[i] << endl;
//i=1;
p[i] = strtok(p[i+1], " ");
//p[i] = strtok(nullptr , " ");
//cout << p[i] << endl;
//i = 2;
p[i] = strtok(p[i + 2], " ");
//p[i] = strtok(nullptr, " ");
//cout << p[i] << endl;
//方式2
/*int i = 0;
p[i] = strtok(arr, " ");
while ((p[i+1] = strtok(nullptr, " "))) {
i++;
}*/
//方式3
/*int i = 0;
while ((p[i] = strtok(p[i], " "))) {
i++;
}*/
//方式4(最简洁)
int i = 0;
while ((p[i] = strtok(p[i], " ")) && ++i);
//输出指针数组
int j = 0;
while (p[j] != nullptr) {
cout << p[j] << endl;
j++;
}
return 0;
}
代码运行
运行结果展示:其中一部分已经注释,可以自己展开试试