将段落转换为具有动态内存的句子

标签 c memory-management malloc realloc text-segmentation

如何将段落转换为句子?我有一个函数签名如下:

char **makeSentences(char *paragraph);

其中:

  • paragraph 是一个包含多个句子的字符串。段落确保每个句子以句点 (.) 结尾,并且整个段落以空终止符结尾。
  • 返回动态分配的句子数组。

我对如何动态地为句子数组分配内存有点困惑。

最佳答案

makeSentences 中,您需要检查 paragraph 以确定每个句子包含的字符数,包括句点和 \0 字符>.

您可以像这样分配内存:

int i;
char** sentences = (char**)malloc( sizeof(char*) * number_of_sentences );
for (i = 0; i < number_of_sentences; i++) {
    sentences[i] = (char*)malloc( sizeof(char) * length_of_sentences[i] );
}

其中 length_of_sentences 是一个包含您发现的句子长度的数组。

关于将段落转换为具有动态内存的句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8200214/

相关文章:

c - 自动为 C 结构分配内存

c++ - 给定一个整数数组,将数组从中间拆分为两个短数组的最有效方法是什么?

c - 读取阻塞甚至关闭写入结束

c - POSIX 计时器在运行几次后挂起

c# - 查找系统和程序内存使用情况的替代方法

c++ - 为什么我的析构函数被多次调用?

c - 当输入数字太大时,C 程序无法运行

c - 如果在堆栈上分配结构,则会发出警告

c - malloc 中是否需要类型转换?

c - 你怎么知道用 malloc() 分配多少空间?