c++ strtok函数的使用问题

#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 本身是返回一个地址

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^