获取一个字符的子串*

例如,我有这个

char *buff = "this is a test string"; 

并想获得"test" 。 我怎样才能做到这一点?

 char subbuff[5]; memcpy( subbuff, &buff[10], 4 ); subbuff[4] = '\0'; 

任务完成 :)

假设你知道子string的位置和长度:

 char *buff = "this is a test string"; printf("%.*s", 4, buff + 10); 

您可以通过将子string复制到另一个内存目标来达到同样的目的,但是这是不合理的,因为您已经将其存储在内存中。

这是通过使用指针避免不必要的复制的一个很好的例子。

<cstring>使用char* strncpy(char* dest, char* src, int n) 。 在你的情况下,你将需要使用下面的代码:

 char* substr; strncpy(substr, buff+10, 4); 

关于strncpy函数的完整文档在这里 。

你可以使用strstr 。 示例代码在这里

请注意,返回的结果不是空终止的。

你可以使用<string.h> strstr()

$ man strstr