比如,我有这个
char *buff = "this is a test string";
想要得到 "test"。我怎样才能做到呢?
"test"
您可以使用 strstr.Example 代码 给你。
strstr
请注意,返回的结果不以空结束。
假设你知道子串的位置和长度:
char *buff = "this is a test string"; printf("%.*s", 4, buff + 10);
您可以通过将子字符串复制到另一个内存目的地来实现同样的功能,但是这是不合理的,因为您已经在内存中拥有它了。
这是使用指针避免不必要复制的一个很好的例子。
char subbuff[5]; memcpy( subbuff, &buff[10], 4 ); subbuff[4] = '\0';
任务完成:)
您可以只使用 <string.h>中的 strstr()
<string.h>
strstr()
$man strstr
使用 <cstring>中的 char* strncpy(char* dest, char* src, int n)。在您的情况下,您需要使用以下代码:
<cstring>
char* strncpy(char* dest, char* src, int n)
char* substr = malloc(4); strncpy(substr, buff+10, 4);
关于 strncpy函数 给你的完整文档。
strncpy