我有一個char **;這實質上是一個帶有指向該句子中每個單詞的句子的句子;即
'h''i''\0''w''o''r''l''d''\0''y''a''y''!''\0'
我期待提取在這種情況下使用,可以接受不同的單詞量和字母統計的句子函數的最後一個字符*(耶!)。有任何想法嗎?到目前爲止,我已經找到了一些類似的功能,但沒有一個能夠做到這一點。
我有一個char **;這實質上是一個帶有指向該句子中每個單詞的句子的句子;即
'h''i''\0''w''o''r''l''d''\0''y''a''y''!''\0'
我期待提取在這種情況下使用,可以接受不同的單詞量和字母統計的句子函數的最後一個字符*(耶!)。有任何想法嗎?到目前爲止,我已經找到了一些類似的功能,但沒有一個能夠做到這一點。
當您將值分配到char **
時,如何跟蹤最後一個單詞?你的問題的答案依賴於此。您可以使用終端值,例如。一個NULL
值後的最後一個單詞,然後像strlen
那樣搜索終端值,或者可以將該長度存儲在size_t
變量中。如果沒有關於您迄今爲止編寫的代碼的進一步信息,我無法確定哪些適用於您。
多數民衆贊成在我的想法;假設我在最後沒有具體的價值,或者沒有跟蹤strlen,那麼將無法做到這一點? 看起來像我將不得不修改我的代碼並跟蹤len – 2013-02-19 02:02:54
+1,建議通過添加一個帶NULL的最後一個條目來零終止char **。 – alk 2013-02-19 07:13:59
爲此使用適當的數據結構。例如:
struct sentence {
size_t word_count;
char** words;
};
然後你就總能得到的最後一個字在O(1)時間:
struct sentence blah;
// ...
char* last_word = blah.words[blah.word_count - 1];
'X [strlen的(X)-1]'? – 2013-02-19 01:51:30
@MarcB將無法正常工作,它將需要長度爲「hi」,其長度爲2-1,這將返回「世界」,但依賴於第一個詞 – 2013-02-19 01:53:39
,那麼你不能使用標準的C字符串功能,並將不得不推出自己的。到底你如何計劃跟蹤這個字符串有多長,假定標準C的字符串結束符分隔符現在實際上是字符串的一部分? – 2013-02-19 01:55:24