2

我是 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?

4

3 回答 3

8

利用 :

  strncpy ( str2, str1+6, 9);
  str2[9] = '\0';   /* null character manually added */
于 2013-05-29T06:36:43.280 回答
4

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

strncpy ( str2, str1+strlen("To be "), strlen("or not to") );
str2[strlen("or not to")] = '\0';
于 2013-05-29T06:45:24.093 回答
0

简单的方法,偏移量str1

strncpy ( str2, str1 + 6, 9 );
于 2013-05-29T06:36:51.593 回答