C:使用分隔符 "&&"将字符串拆分为字符串数组

标签 c arrays string

我是 C 语言新手,所以我需要帮助。 我需要使用分隔符“&&”将字符串拆分为字符串数组, 问题是我尝试使用 strtok,但是当我使用它时,如果是 '&' 中的某个位置,看起来 strtok 无法正确处理字符串。

我知道 && 之间的每个部分最多 256 个字符,并且最多有 16 个部分。 所以我需要创建一个数组arr[16][256]或大小为16*256的数组。 无论如何,每次我尝试我的代码都会因 & 和 && 之间的不同而失败

示例:

    char arr[16][255];
    char stringToSplit = "Hello World && How are u doing && more words & bla &";

输出:

    arr[0] = "Hello World ";
    arr[1] = " How are u doing ";
    arr[2] = " more words & bla &";

谢谢!

这是我尝试过的:

  int i;
  char *p;
  i = 0;
  p = strtok (stringToSplit ,"&&");
  while (p != NULL)
  {
    arr[i++] = p;
    p = strtok (NULL, "&&");
  }
  for (i=0;i<16; ++i)
    printf("%s\n", arr[i]);

最佳答案

strtok() 按字符分割字符串。

您需要strstr()在字符串中查找字符串,然后将相关字符复制到目的地。继续这样做,直到源字符串耗尽。

关于C:使用分隔符 "&&"将字符串拆分为字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23348633/

相关文章:

c - 在 C 中检测区域设置敏感数字

java - 如何使用 Java 正则表达式选择 JSON 数组字符串中的一个对象?

python - 对python的列表行为感到困惑

java - String.subString() 和 String.subSequence() 有什么区别

c - 使用 C 编程添加已存在于列表中的站时出现段错误

c - 输入 1,000,000 个数字后程序无法运行?

c - 在 realloc 中处理指针?

arrays - 如何对数组中的元素之间没有空格的字符串进行字符串化处理?

arrays - swift 2 : extension to Array that compares exact objects?

ios - 使用 NSArray 初始化对象数组