gpt4 book ai didi

c - 如何在不知道长度的情况下初始化 C 中的字符串,并继续向其附加字符?

转载 作者:行者123 更新时间:2023-11-30 21:00:50 26 4
gpt4 key购买 nike

基本上,当我提取出以逗号分隔的数字时,我试图为字符串分配足够的空间。我怎样才能在c中做到这一点?

我的算法是从索引 0 到最后一个索引循环遍历字符串,并将每个数字放入名为 temp 的字符串中,当遇到逗号时,我会打印该字符串。

char* string = "123,4567,8910";
char* delimiter = ",";

size_t i;
// char temp[] = "" ???? supposed to be a dynamic string/array whatever
for (i = 0; i < strlen(string); i++) {
if (string[i] == ',') {
// printf("%s", temp);
// clear temp string
} else {
// append the character string[i] to temp
}
}

最佳答案

您有几个选择...

您可以循环遍历字符串并计算位数,然后根据该数字分配缓冲区。但这意味着您要循环字符串两次。

您可以使用malloc分配缓冲区,然后根据需要使用realloc扩展它。这只需要您循环遍历字符串一次,但您正在执行相当复杂的内存管理舞蹈。

关于c - 如何在不知道长度的情况下初始化 C 中的字符串,并继续向其附加字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38425601/

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