首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取char*的子字符串

获取char*的子字符串
EN

Stack Overflow用户
提问于 2010-11-18 19:37:08
回答 5查看 651.4K关注 0票数 170

例如,我有这样一个例子

代码语言:javascript
复制
char *buff = "this is a test string";

想要得到"test"。我该怎么做呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-11-18 19:41:10

代码语言:javascript
复制
char subbuff[5];
memcpy( subbuff, &buff[10], 4 );
subbuff[4] = '\0';

工作完成:)

票数 243
EN

Stack Overflow用户

发布于 2010-11-18 19:40:49

假设您知道该子字符串的位置和长度:

代码语言:javascript
复制
char *buff = "this is a test string";
printf("%.*s", 4, buff + 10);

您可以通过将子字符串复制到另一个内存目标来实现相同的功能,但这是不合理的,因为您已经在内存中拥有它。

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

票数 97
EN

Stack Overflow用户

发布于 2010-11-18 19:47:02

使用<cstring>中的char* strncpy(char* dest, char* src, int n)。在您的示例中,您需要使用以下代码:

代码语言:javascript
复制
char* substr = malloc(4);
strncpy(substr, buff+10, 4);

有关strncpy函数here的完整文档。

票数 68
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4214314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档