gpt4 book ai didi

C:从不带分隔符的字符串中取出部分(使用 strstr)

转载 作者:行者123 更新时间:2023-11-30 20:35:58 25 4
gpt4 key购买 nike

我有一个字符串,例如:“Error_*_code_break_*_505_*_7.8”

我需要使用 strstr 函数通过分隔符 "_*_" 将字符串分割成一个循环,并将所有部分输入到一个新数组中,我们称之为-

char *elements[4] = {"Error", "code_break", "505", "7.8"}

但是strstr只给我一个指向字符的指针,有什么帮助吗?

注意:第二个字符串“code_break”仍应包含“_”,或者在任何其他情况下。

最佳答案

这会让你成功一半。该程序将字符串的分割部分打印到标准输出;它不会创建数组,但也许您可以自己添加。

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

void split(const char * str, const char * delimiter)
{
char * writable_str = strdup(str);
if (writable_str == NULL) { return; }
char * remaining = writable_str;
while (1)
{
char * ending = strstr(remaining, delimiter);
if (ending != NULL) { *ending = 0; }
printf("%s\n", remaining);
if (ending == NULL) { break; }
remaining = ending + strlen(delimiter);
}
free(writable_str);
}

int main(void) {
const char * str = "Error_*_code_break_*_505_*_7.8";
const char * delimiter = "_*_";
split(str, delimiter);
return 0;
}

关于C:从不带分隔符的字符串中取出部分(使用 strstr),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37040934/

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