将特定字符从字符串复制到另一个字符串

时间:2012-12-26 14:35:38

标签: c

假设我有2个字符串

char str_cp[50],str[50];
str[]="how are you"  

我希望将第二个单词ex“are”放入另一个名为str_cp的字符串中,如果我使用

printf("%s ,%s",str,str_cp); 

就像

how are you 
are 

我该怎么做? (我试过strncpy函数,但它只能复制字符串beggining中的特定字符) 是否有任何方法可以使用指向字符串第4个字​​符的指针,并在strncpy函数中使用它来复制前3个字符但是开始点是第4个字符?

1 个答案:

答案 0 :(得分:21)

  

我尝试了strncpy函数,但它只能复制字符串

的前缀中的特定字符

strcpy系列函数将从您指示复制的位置复制。例如,要从第五个字符开始复制,您可以使用

strncpy(dest, &src[5], 3);

strncpy(dest, src+5, 3); // Same as above, using pointer arithmetic

请注意,除非您点击源字符串的末尾,否则strncpy null - 终止字符串:

  

如果source长于num,则不会在目标的末尾隐式附加空字符(因此,在这种情况下,目标可能不是空终止的C字符串)。

您需要自行终止结果:

strncpy(dest, &src[5], 3);
dest[3] = '\0';