获取一个字符的子串*
例如,我有这个
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