作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
基本上,当我提取出以逗号分隔的数字时,我试图为字符串分配足够的空间。我怎样才能在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/
我是一名优秀的程序员,十分优秀!