获取C中字符串的尾部

获取C中字符串的尾部,c,C,我有一个字符串,比如“1001100001110001000110001100100” 如果我需要得到这个字符串的尾部,意思是除了第一个元素以外的所有元素, 我是否必须从第二个元素(O(n))开始将每个字符复制到新数组中 或者有没有更快的方法来实现这一点,比如神奇地将指针向右移动1处或内置函数?如果您不需要对字符串进行任何修改,那么您可以只给原始指针加1,否则您将需要复制。没有什么神奇之处。指向字符串的指针就像指向数组的指针一样,只是第一个元素的地址 基本指针算法,取现有指针,递增(p++),就

我有一个字符串,比如“
1001100001110001000110001100100

如果我需要得到这个字符串的尾部,意思是除了第一个元素以外的所有元素, 我是否必须从第二个元素(O(n))开始将每个字符复制到新数组中


或者有没有更快的方法来实现这一点,比如神奇地将指针向右移动1处或内置函数?

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

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


基本指针算法,取现有指针,递增(
p++
),就有了一个指向字符串“尾部”的指针。

您只需创建一个指向所需索引的字符*

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