2010-11-12 63 views
2

我有一個字符串,如「100110000111001100010001100011001100100」。獲取C中字符串的尾部

如果我需要得到這個字符串的尾部,這意味着一切,但第一要素, 我必須每個字符複製到新陣列,從第二個元素(O(n))的開始,

還是有更快的方法來做到這一點,就像魔術般將指針向右移位或內置函數?

回答

4

你可以做一個char *指向你需要的索引。

char *p = "100110000111001100010001100011001100100"; 
char *tail = &p[1]; //&p[1] is the same as p+1 
printf("p = %s\ntail = %s\n",p,tail); 
5

如果你不需要對字符串做任何修改,那麼你可以給原始指針加1,否則你需要複製。

1

沒什麼神奇的。指向字符串的指針,就像指向數組的指針一樣,只是第一個元素的地址。

基本指針算術,帶上你現有的指針,增加它(p++),並且你有一個指向你的字符串「尾巴」的指針。