从父字符串中获取子字符串

时间:2015-02-03 09:58:30

标签: c

我收到了一个数组

char arry[] ="TestINeedHelp";

我对第5个字母的arry感兴趣。字符串的总长度和内容可以有所不同,但我总是对第5个字符开始感兴趣。

我如何隔离这部分?

4 个答案:

答案 0 :(得分:1)

你应该使用strncpy函数,不太可能使用指针手动黑客攻击。

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

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

答案 1 :(得分:1)

您可以编写类似

的内容
char * p = (char *)arry + 4;

然后,您可以在案例中使用p

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

strcpy(p,&array[4]);

答案 2 :(得分:1)

strcpy(subString,array+4);

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

答案 3 :(得分:1)

最好的方法是附上"""你需要做一个功能:

void process_substring(const char *s)
{
}

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

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

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

表达式&arry[4]表示"取索引4"处的字符的地址,这是第五个字符。由于该字符位于字符串内,因此其地址将充当以该字符开头的字符串的地址。

我没有处理arry的范围/生命周期问题。