问C 语言是否像其他语言那样提供“substr”(提取子字符串)函数?
答不完全是。 (一个原因是,正如问题 7.2 和第 8 节所提到的,C 语言没有托管字符串类型。)
要从源字符串中提取长度为LEN、起始位置为POS的子字符串,可以使用类似以下代码:
char dest[LEN+1]; strncpy(dest, &source[POS], LEN); dest[LEN] = '\0'; /* ensure \0 termination */或者,使用问题 13.2 中的技巧:
char dest[LEN+1] = ""; strncat(dest, &source[POS], LEN);或者,利用指针而不是数组表示法:
strncat(dest, source + POS, LEN);(表达式source + POS根据定义,与&source[POS]相同——另见第 6 节。)