我是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?
答案 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 );