2010-11-12 62 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++),并且你有一个指向你的字符串“尾巴”的指针。