我收到了一个数组
char arry[] ="TestINeedHelp";
我对第5个字母的arry
感兴趣。字符串的总长度和内容可以有所不同,但我总是对第5个字符开始感兴趣。
我如何隔离这部分?
答案 0 :(得分: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
的范围/生命周期问题。