我们说我有
char* string = "1234567";
获取字符串"234567"
的最简单方法是什么?
答案 0 :(得分:3)
您可以设置指向第二个字符的指针,其中包含以下内容之一:
char *fromSecondChar = string + 1;
char *fromSecondChar = &(string[1]);
请注意,这不是你想要的空字符串,你应该先检查一下:
char *fromSecondChar = string;
if (*string != '\0') fromSecondChar++;
另外请记住,这是指向字符串文字本身的指针,因此适用正常的修改规则(不要尝试这样做)。如果您希望单独盯着您可以修改,则需要strcpy
将其发送到其他地方。
如果您对动态分配的缓冲区感到满意,并且您的实施 strdup
(它'不受ISO C标准规定)。这可以通过以下方式完成:
strdup
答案 1 :(得分:1)
如果你想要子串应该在一个单独的内存中,那么你可以这样做。
char new_string[max_size];
strcpy(new_string, old_string + 1);