gpt4 book ai didi

c - 如何在 C 中取消分割 strtok 字符串?

转载 作者:行者123 更新时间:2023-11-30 16:17:22 25 4
gpt4 key购买 nike

我扫描了一个文本文件并使用 strtok 分割了字符串。分隔符是所有标点符号。我现在想取消分割文件,以便它恢复到原始状态。有没有办法做到这一点?或者我应该再次加载文件?

最佳答案

对于单个分隔符

char *unsplit(char *buff, char **argv, size_t size, int delimiter)
{
size_t pos = 0;

for (size_t index; index < size; index++)
{
strcpy(buff + pos, argv[index]);
pos += strlen(argv[index]);
if(index != size - 1)
{
buff[pos++] = delimiter;
buff[pos] = 0;
}
}
return buff;
}

char *unsplitNULL(char *buff, char **argv, int delimiter)
{
size_t pos = 0;

while(*argv)
{
strcpy(buff + pos, *argv);
pos += strlen(*argv++);
if(*argv)
{
buff[pos++] = delimiter;
buff[pos] = 0;
}
}
return buff;
}

int main()
{

char *str[] = {"3443", "erte", "sdfdsffd", "wewere", NULL};
char buff[100];
printf("%s\n", unsplit(buff, str, 4, ','));
printf("%s\n", unsplitNULL(buff, str, ','));

return 0;
}

关于c - 如何在 C 中取消分割 strtok 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56269631/

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