我有一个问题,让我们考虑一下我是一个数组,char A[50]
。比方说,包含"abcdef"
。
我如何阅读字符,让我们说"cd"
并保存在另一个数组中,char B[50]
?
答案 0 :(得分:1)
您可以使用strncpy
将子字符串从一个数组复制到另一个数组,然后终止该子字符串:
int start = 2, count = 2
strncpy(B, A + start, count);
B[count] = '\0';
回答关于C ++的问题的旧版本:
但是,有一种更好的方法:不要使用数组,而是使用std::string
:
std::string A = "abcdef";
auto B = A.substr(2, 2);
答案 1 :(得分:0)
如果您想使用地址和抵消,可以使用sprintf
,例如:
#include <stdio.h>
int main()
{
char A[50] = "abcdef";
char B[50] = {0};
unsigned offset = 2;
unsigned len = 2;
sprintf(B,"%.*s",len,&A[offset]);
printf("%s",B);
return(0);
}
这将导致用A [2]和A [3]以及字符串终止符=“cd \ 0”的值填充B. 如果你不想要字符串,只需要数组元素中的数据,那么简单的memcpy()就可以了。