我是 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/