【发布时间】:2023-03-16 01:34:02
【问题描述】:
我是编程新手,我一生都无法解决这个问题。我正在尝试创建一个对字符串进行标记的函数,该字符串以空格作为分隔符,指向字符串的指针和标记的数量作为参数。该函数应返回一个带有标记化字符串 Ex 的 char 数组。将 "( 2 + ( 5 - 3 ) )" 变成 { "(", "2", "+", "(", "5", "-", "3", ")", ")"} .我的代码如下:
char** get_tokens(char* str, int n_tokens)
{
char *new;
int i = 0;
char ** new_arr = malloc(sizeof(char) * n_tokens);
if(new_arr == NULL)
return NULL;
new = strtok(str, " ");
while(new != NULL)
{
printf("%s\n", new);
new = strtok(NULL, " ");
}
char** p;
return p;
}
char** p 行只是没有编译错误的填充代码。
我相信我已经正确使用了 strtok(),但我遇到问题的部分是理解返回类型。我不确定如何使用 char** 返回并拥有一个带有标记化字符串的数组以供以后使用。如果有人可以帮助解释指向指针返回类型的指针以及帮助使我的代码执行我想要的操作的方法,将不胜感激。
【问题讨论】:
标签: c arrays string split strtok