【发布时间】:2017-05-10 15:02:05
【问题描述】:
我正在尝试将字符串 (const char*) 拆分为单词并将单个单词保存在 char-pointer (char**) 数组中。
我的问题不是拆分部分,而是我不允许分配任何内存。我需要使用输入字符串作为我的记忆,但由于它是一个 const char* 我无法修改它。
我急切的想法是将所有空格更改为'\ 0'并将单词开头的位置保存在数组中,这当然是不可能的,因为输入字符串是const。
函数的声明如下所示:
int breakIntoWords(const char *line, int maxWords, char** words);
函数返回line中的单词数,maxWords是单词数组的大小。
我发现的所有内容要么使用数组作为输入字符串,要么使用 malloc 分配内存。
【问题讨论】:
-
您可以保存代表单词的索引/指针对。
-
当然可以,@VittorioRomeo,但这不会让您获得包含单个单词的 C 字符串。
-
but that does not get you C strings没有C strings,只有字符数组(当然字符串文字除外)。 -
array of char-pointer (char**).==>>char**不是数组,也不是字符指针数组。它只是一个指向 char 的指针。 -
@JohnBollinger 不知何故这是我的观点。这是 SO 而不是学习系统,我认为人们应该遵守标准。