You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何访问strtok返回Token的指定索引元素及遍历字符?

关于strtok返回Token的字符遍历问题

当然可以直接用tp[index]来遍历"Today"的每个字符,原因很简单:strtok返回的指针指向了Token的首字符,而分割后的Token是标准的C风格字符串(末尾自动被strtok替换为\0),C语言里数组下标访问和指针偏移访问是完全等价的——tp[index]就是*(tp + index)的语法糖。

具体实现示例

你可以在原循环里加入这段遍历逻辑:

int index = 0;
for (char *tp = strtok(strings, " "); tp != NULL; tp = strtok(NULL, " \t\n")){
    // 重置索引,避免上一次的残留值影响
    index = 0;
    // 遍历当前Token的每个字符
    while (tp[index] != '\0') {
        // 这里可以对字符做自定义处理,比如打印
        printf("当前字符:%c\n", tp[index]);
        index++;
    }

    // 也可以用指针自增的方式遍历,效果完全一致
    // char *curr_char = tp;
    // while (*curr_char != '\0') {
    //     printf("当前字符:%c\n", *curr_char);
    //     curr_char++;
    // }
}

注意事项

  • 每次处理新的Token时,一定要把index重置为0,否则会带着上一次循环的索引值继续,导致访问到Token范围外的内存(越界)。
  • strtok会修改原字符串的内容(把分隔符替换成\0),所以原字符串在调用后会被破坏,如果需要保留原数据,记得提前复制一份。

内容的提问来源于stack exchange,提问作者thegoat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 14:59:59