c - 未定义大小的字符串在没有 strtok 的情况下拆分为 c

标签 c strtok

我有一个字符串:

 char *s = "asdf:jhgf";

我需要把它分成两个标记:

token[0] = "asdf";
token[1] = "jhgf"; 

我在使用 strtok() 时遇到问题。

最佳答案

您可以使用一个简单的sscanf():

char token[2][80];

if(sscanf(s, "%[^:]:%s", token[0], token[1]) == 2)
{
  printf("token 0='%s'\ntoken 1='%s'\n", token[0], token[1]);
}

请注意,第一次转换是使用 %[^:] 扫描直到(但不包括)冒号。然后我们跳过冒号,扫描一个普通的字符串。

关于c - 未定义大小的字符串在没有 strtok 的情况下拆分为 c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25520801/

相关文章:

c - 逐行读取文件并在 C 中使用 strtok()

C: fgets() 和命令行输入

c - 如何使用strtok检测空行

c - 如何在 C 中使用 strtok 在字符数组中显示文本文件中的 3 行

c - C 中的竞争条件

使用 gcc 展开循环的正确方法

c - 不太确定为什么 strtok 没有按照我想要的方式工作

c - C语言中的输入重定向

c - 如何使用 switch case 在 C 中退出控制台应用程序?

c++ - 什么可能导致无限循环错误