char ** to char *

时间:2013-02-19 01:50:24

标签: c

SO,

我有一个char **;这本质上是一个带有指向该句中每个单词的指针的句子;即

'h''i''\0''w''o''r''l''d''\0''y''a''y''!''\0'

我希望在这种情况下提取最后一个char *(yay!),其功能可以接受不同单词数量和字母数量的句子。有任何想法吗?到目前为止,我发现了一些类似的东西,但没有一个完成这个功能的库函数。

2 个答案:

答案 0 :(得分:3)

当您将值分配给char **时,如何跟踪最后一个字?问题的答案依赖于此。您可以使用终端值,例如。最后一个单词后的NULL值,然后搜索strlen之类的终值,或者您可以将长度存储在size_t变量中。如果没有关于您目前编写的代码的进一步信息,我无法确定哪一个适用于您。

答案 1 :(得分:0)

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

struct sentence {
    size_t word_count;
    char** words;
};

然后你总能在O(1)时间内找到最后一个单词:

struct sentence blah;
// ...
char* last_word = blah.words[blah.word_count - 1];