繁体   English   中英

从父字符串获取子字符串

[英]Obtaining a substring from the parent string

我收到一个数组

char arry[] ="TestINeedHelp";

我对从第5个字符开始的arry感兴趣。 字符串的总长度和内容可能有所不同,但从5字符开始我一直很感兴趣。

如何隔离这部分?

您应该使用strncpy函数,建议不要使用指针进行手动黑客攻击。

在您的情况下,函数调用如下所示:

strncpy(dest, src + 4, strlen(src) - 1);

你可以写类似

char * p = (char *)arry + 4;

然后,您可以在情况下使用p

另外,另一种方法是使用strcpy() / strncpy()例如[假设p已分配]

strcpy(p,&array[4]);
strcpy(subString,array+4);

array+4指向array+4中的第5个元素

最好的方法是将您需要做的“事情”包含在一个函数中:

void process_substring(const char *s)
{
}

然后从其他上下文中调用该函数,并向其传递一个指向从第五个字符开始的子字符串的指针:

if(strlen(arry) >= 5)
  process_substring(&arry[4]);

我添加了代码,以确保在尝试访问子字符串之前arry至少有五个字符。

表达式&arry[4]意思是“采用索引4处的字符地址”,这是第五个字符。 由于该字符位于字符串中,因此其地址将充当以该字符开头的字符串的地址。

我没有处理arry范围/终身问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM