prev up next   top/contents search

comp.lang.c FAQ 列表· 第 13.3 题

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 节。)


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管