在C中获取字符串的尾部

时间:2010-11-12 12:04:03

标签: c

我有一个字符串,例如“100110000111001100010001100011001100100”。

如果我需要获取此字符串的尾部,除了第一个元素之外的所有内容, 我是否必须从第二个元素(O(n))

开始将每个字符复制到新数组

还是有更快的方法来做到这一点,就像以某种方式神奇地将指针1移位到右边或内置函数?

3 个答案:

答案 0 :(得分:5)

如果您不需要对字符串进行任何修改,那么您可以将原始指针加1,否则您将需要复制。

答案 1 :(得分: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);

答案 2 :(得分:1)

没有什么神奇的。指向字符串的指针,就像指向数组的指针一样,只是第一个元素的地址。

基本指针算法,取现有指针,递增它(p++),并且指针指向字符串的“尾部”。