gpt4 book ai didi

c - c语言通过strtok拆分字符串

转载 作者:太空宇宙 更新时间:2023-11-03 23:29:46 24 4
gpt4 key购买 nike

我正在通过 strtok 拆分字符串,但发生了一些不同的事情,例如

 *tok =strtok(string,"\r\n");

strtok 当只找到 \r 然后它拆分字符串而不是整个 \r\n ,我希望只有当整个字符串出现在数据 中时才应该拆分字符串\r\n ;

最佳答案

要使用多个字符拆分字符串,您可以使用 strstr在一个循环中

只需重复调用 strstr 来查找您的边界字符串的出现。

得到结果后,将指针向前移动子串的长度,然后再次重复搜索。

这是一个丑陋的例子,但我认为它可以满足您的需要

#include <stdio.h>
#include <string.h>

int main ()
{
char buffer[128];
char *str ="This is a long text \r\n with \r\nmany carriage returns,\
I hate \r\n just this\r\n nothing else\r\n";

char *token="\r\n";

int l=strlen(str);
char *start,*p;
start=str;

p= strstr (str,token);
while(p)
{
strncpy( buffer,str, p-str);
buffer[p-str] ='\0';

printf("%s\n",buffer);

str=p+strlen(token);

if((str-start) >= l)
break;

p= strstr (str,token);
}
if(!p)
printf("%s\n",str);
return 0;
}

参见 HERE

PS:如果有人需要,请编辑代码,使其变得更好。

关于c - c语言通过strtok拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18726077/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com