簡體   English   中英

是否可以讓字符串函數(例如strstr)在C ++中從頭到尾考慮一個數組?

[英]Is it possible to have string functions (such as strstr ) consider an array from end towards beginning in C++?

我想知道C ++中的某些功能是否可以“反向”工作。 相反,我的意思是:與它們通常“遍歷”數組的方式相反。 例如,我知道strchr返回一個指針,該指針指向數組中給定字符的第一次出現,而strRchr返回數組中給定字符的最后一次出現。 strtok,strstr和其他任何人都具有相同的能力嗎? 我相信這樣的選擇將非常有用,例如:當試圖找到最大的回文時; (不確定這是一個適當的示例...)

不是,不是

舊的C函數采用“開始指針”,並且大多數進展都向前進行,直到遇到空終止符為止。 這是固定的行為。

如果幸運的話,它們采用一個“開始指針”和一個長度(在某些方面更好),而且還要求進行正向遍歷,除非該函數專門編寫為不執行此操作。

幸運的是,C ++的更現代的算法使用迭代器對來指定范圍,這帶來了一些機會。 真正的魔力在於存在“反向迭代器”,這些東西可以是++ 'd,但實際上可以倒退到某個范圍內(這是指針類所不知道的方法)。 通常,您可以將反向迭代器傳遞到標准算法中,以獲取所需的行為。 都是故意抽象的。

我建議閱讀有關C ++算法的文章,並放棄舊的C技術。 盡管C程序員當然仍然存在(並且出於充分的理由,C應用程序仍然存在),但我們其他人早在這種局限性的基礎上繼續前進。 ;)

否,但是您可以先對數組進行反向(),然后應用所需的函數。

http://www.cplusplus.com/reference/algorithm/reverse/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM