如何在c中获取char数组的一部分

时间:2013-05-29 06:33:08

标签: c arrays

我是C的新手,我有以下简单的代码。我知道使用strncpy我可以从字符串中复制字符。

#include <stdio.h>
#include <string.h>

int main ()
{
  char str1[]= "To be or not to be";
  char str2[40];

  strncpy ( str2, str1, 5 );
  str2[5] = '\0';   /* null character manually added */
  puts (str2);

  return 0;
}  

此代码的输出是

To be

如果我希望结果是'或不',我怎么能读这些字符?从这种情况下的7-15?

3 个答案:

答案 0 :(得分:4)

使用:

  strncpy ( str2, str1+6, 9);
  str2[9] = '\0';   /* null character manually added */

答案 1 :(得分:2)

无需手动计数,您可以使用标准库函数。请尝试以下

strncpy ( str2, str1+strlen("To be "), strlen("or not to") );
str2[strlen("or not to")] = '\0';

答案 2 :(得分:0)

这样做的简单方法,偏移str1

strncpy ( str2, str1 + 6, 9 );