#include
main(){
char s[] = "ab-cd : ef;gh :i-jkl;mnop;qrs-tu: vwx-y;z";
char *delim = "-: ";
char *p;
printf("%s ", strtok(s, delim));
while((p = strtok(NULL, delim)))
printf("%s ", p);
printf("\n");
}
请问char *delim="-: " 和p=strtok(..)什么意思,指针为什么能赋地址以外的值
1、char *delim="-: " 指针在定义的时候初始化,让它指向 "-: " 常量字符串,实际上delim指针还是保留的是地址,并不是赋地址以外的值。
2、p=strtok(..) 这个函数是用来按特定分隔符分割字符串用的,比如程序中就是以 - : 空格 这些分隔符进行匹配切割,具体的用法可以查看一下这个函数的说明。
char *delim="-: " ,表示分隔符,用 strtok(s, delim) 调用 就是去遇到 - : 或者 空格 都算匹配
"-: " 这个声明本身在编译器的时候是有地址的, strtok 本身是返回一个地址
不知道你这个问题是否已经解决, 如果还没有解决的话: