strtok是C语言用于分割字符串的函数,需要include<string.h>。
第一次使用时第一个参数传入待分割的字符串,第二个参数传入分割符号。
第二次使用时第一个函数传入NULL,第二个参数传入分割符号。
#include <iostream>#include<cstdio>#include<cstring>using namespace std;int main(){char a[100];gets(a);char *token;token=strtok(a," ");while(token!=NULL){printf("a数组:\n");for(int i=0;i<12;i++) printf("字符:%cACII码%d地址:%d\n",a[i],a[i],&(a[i]));printf("token数组:\n");for(int i=0;i<12;i++) printf("字符:%cACII码%d地址:%d\n",token[i],token[i],token+i,&(token[i]));printf("a:%s\n",a);printf("token:%s\n",token);token=strtok(NULL," ");}return 0;}
结果如下
oi kf of
a数组:
字符:oACII码111地址:6421904
字符:iACII码105地址:6421905
字符: ACII码0地址:6421906
字符:kACII码107地址:6421907
字符:fACII码102地址:6421908
字符: ACII码32地址:6421909
字符:oACII码111地址:6421910
字符:fACII码102地址:6421911
token数组:
字符:oACII码111地址:6421904
字符:iACII码105地址:6421905
字符: ACII码0地址:6421906
字符:kACII码107地址:6421907
字符:fACII码102地址:6421908
字符: ACII码32地址:6421909
字符:oACII码111地址:6421910
字符:fACII码102地址:6421911
a:oi
token:oi
a数组:
字符:oACII码111地址:6421904
字符:iACII码105地址:6421905
字符: ACII码0地址:6421906
字符:kACII码107地址:6421907
字符:fACII码102地址:6421908
字符: ACII码0地址:6421909
字符:oACII码111地址:6421910
字符:fACII码102地址:6421911
token数组:
字符:kACII码107地址:6421907
字符:fACII码102地址:6421908
字符: ACII码0地址:6421909
字符:oACII码111地址:6421910
字符:fACII码102地址:6421911
字符: ACII码0地址:6421912
字符: ACII码0地址:6421913
字符: ACII码0地址:6421914
a:oi
token:kf
a数组:
字符:oACII码111地址:6421904
字符:iACII码105地址:6421905
字符: ACII码0地址:6421906
字符:kACII码107地址:6421907
字符:fACII码102地址:6421908
字符: ACII码0地址:6421909
字符:oACII码111地址:6421910
字符:fACII码102地址:6421911
token数组:
字符:oACII码111地址:6421910
字符:fACII码102地址:6421911
字符: ACII码0地址:6421912
字符: ACII码0地址:6421913
字符: ACII码0地址:6421914
字符: ACII码0地址:6421915
字符: ACII码0地址:6421916
字符: ACII码0地址:6421917
a:oi
token:of