首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >char**到char*

char**到char*
EN

Stack Overflow用户
提问于 2013-02-19 09:50:24
回答 2查看 115关注 0票数 0

所以,

我有一个char**;它本质上是一个句子,其中的每个单词都有一个指针;

代码语言:javascript
复制
'h''i''\0''w''o''r''l''d''\0''y''a''y''!''\0'

我正在寻找提取最后一个字符*(耶!)在这种情况下,具有可以接受不同字数和字母计数的句子的函数。有什么想法吗?到目前为止,我已经找到了一些库函数,它们可以做类似的事情,但没有一个可以完全做到这一点。

EN

回答 2

Stack Overflow用户

发布于 2013-02-19 09:56:32

当您为char **赋值时,如何跟踪最后一个单词?您的问题的答案依赖于此。你可以使用终结值,例如。最后一个单词后面的NULL值,然后像strlen一样搜索终结值,或者将长度存储在size_t变量或具有灵活数组成员的struct中(即struct fubar { size_t size; char *word[]; },具有一些push_back函数,以便随着数组的增长重新分配整个对象,并递增size)。如果没有关于您到目前为止编写的代码的进一步信息,我不能确定这些代码中的哪一个适用于您。

票数 3
EN

Stack Overflow用户

发布于 2013-02-19 10:02:14

为此,请使用适当的数据结构。例如:

代码语言:javascript
复制
struct sentence {
    size_t word_count;
    char** words;
};

那么你总是能够在O(1)时间内到达最后一个单词:

代码语言:javascript
复制
struct sentence blah;
// ...
char* last_word = blah.words[blah.word_count - 1];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14948519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档