我如何读取字符串的字符?

时间:2017-10-30 10:15:12

标签: c

我有一个问题,让我们考虑一下我是一个数组,char A[50]。比方说,包含"abcdef"

我如何阅读字符,让我们说"cd"并保存在另一个数组中,char B[50]

2 个答案:

答案 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()就可以了。