我有一个字符串,例如“100110000111001100010001100011001100100
”。
如果我需要获取此字符串的尾部,除了第一个元素之外的所有内容, 我是否必须从第二个元素(O(n))
开始将每个字符复制到新数组还是有更快的方法来做到这一点,就像以某种方式神奇地将指针1移位到右边或内置函数?
答案 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++
),并且指针指向字符串的“尾部”。