将特定字符从字符串复制到另一个字符串
假设我有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个字符但是开始点是第四个角色?
我尝试了strncpy函数,但它只能复制字符串beggining中的特定字符
strcpy
系列函数将从您告诉它复制的点复制。 例如,要从第五个字符复制,您可以使用
strncpy(dest, &src[5], 3);
要么
strncpy(dest, src+5, 3); // Same as above, using pointer arithmetic
请注意, strncpy
不会为您终止字符串,除非您点击源字符串的末尾:
如果source长于num,则在目标的末尾不会隐式附加空字符(因此,在这种情况下,destination可能不是空终止的C字符串)。
您需要自己null终止结果:
strncpy(dest, &src[5], 3); dest[3] = '\0';