gpt4 book ai didi

c++ - C++中的拆分函数

转载 作者:行者123 更新时间:2023-11-28 01:45:30 25 4
gpt4 key购买 nike

我正在尝试编写一个函数,它将一个字符串和一个定界符作为输入并返回一个字符串数组。由于某种原因,以下代码遇到了段错误。我想知道可能是什么问题?

char** split(string thing, char delimiter){

thing+='\0';//add null to signal end of string
char**split_string = new char*[100];

int i=0,j=0,l=0; //indexes- i is the ith letter in the string
// j is the jth letter in the lth string of the new array
int length = thing.length();
while (i < length){
if ((thing[i]!=delimiter && thing[i]!='\0')){
split_string[l][j]=thing[i];
j++;
}
else {
j=0; //reset j-value
l++;
}
i++;
}

return split_string;

最佳答案

做完之后char**split_string = new char*[100];

您仍然需要对您创建的 100 个 char * 指针中的每一个进行初始化。

static const size_t str_len = 50; //assuming length will not exceed 
for( size_t ix = 0 ; ix < 100 ; ++ix){
split_string[ix] = new char[str_len];
}

此外,您还需要确保在写入 split_string 时不会超过分配的内存,在这种情况下,它是 50,并且您没有超过 100 的拆分字符串。

关于c++ - C++中的拆分函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45317483/

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