从索引1到字符串结尾的子字符串

时间:2015-10-05 06:00:30

标签: c string substring

我们说我有

char* string = "1234567";

获取字符串"234567"的最简单方法是什么?

2 个答案:

答案 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);