在c中的特殊运算符之前/之后复制字符

标签 c string

我有一个“xxx/yyy”格式的值,我使用以下方法提取“/”之前和之后的两个值

            char * ptr = "xxx/yyy";  

            part2 = strchr( ptr, '/');
            if ( part2 != NULL)
               part2++;

            part1 = strtok(ptr,"/");

结果:第 1 部分 = xxx 第 2 部分 = yyy

这工作正常,但是当我有像“/yyy”这样的 ptr 值时,我的结果是

       ***part1 = yyy !!!!!! IT should be an empty char!!!!***
       part2 = yyy 

提前致谢

最佳答案

strtok 函数会跳过您在第二个字符串中传递的所有字符。因此,您在第一次调用时会得到第一个不包含这些字符的字符串。当您需要不同的行为时,您应该考虑实现 my_strtok()

关于在c中的特殊运算符之前/之后复制字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21988776/

相关文章:

c - 新数组和指针

c - 这个宏有什么问题?

找不到 "Too many arguments for format"的问题

java - 不使用数组计算字符串中的唯一单词

python - 进行不区分大小写的替换但匹配要替换的单词的大小写的最佳方法?

我可以使用 cudaMalloc 分配比必要更多的内存以避免重新分配吗?

c - 如何从全屏 OpenGL 窗口获取关键事件?

javascript - 代码返回未定义而不是返回值

c - _memccpy 的宽字符版本

c# - 字符串[]管理