gpt4 book ai didi

c - 使用特定的多字节定界符标记字符串

转载 作者:太空宇宙 更新时间:2023-11-04 01:23:15 25 4
gpt4 key购买 nike

我需要像这样解析一个字符串:

link:a link:blink:c link:d lkjh

输出应该是a, blink:c, d

但是使用 strtok 的输出是 a, b, c, d, jh

我如何确保只有 link: 显式拆分字符串(避免 blink:c 被拆分的情况。另外,我如何确保最后一个 kjh 不出现(k 似乎是这里的分隔符)。

最佳答案

首先,将分隔符字符串传递给 strtok 并不像您想象的那样。如果您将 "link:" 作为 delim 字段传递,它将使用这些字符中的任何 作为分隔符。这就是 lkjh 被拆分并返回 jh 的原因。

最好按空格分隔,然后检查开头是否匹配 "link:"

const char * delim = " ";
const char * prefix = "link:";
const size_t len_prefix = strlen( prefix );

char * token = strtok( input_string, delim );
while( token != NULL ) {
if( 0 == strncmp( token, prefix, len_prefix )
{
printf( "%s\n", token + len_prefix );
}
token = strtok( NULL, delim );
}

如果您需要比这更复杂的东西,请自己动手或使用正则表达式。

关于c - 使用特定的多字节定界符标记字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36587342/

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