c语言strcpy函数能不能只复制部分字符

c语言strcpy函数能不能只复制部分字符啊,就是截取其中一段复制。

strncpy :

img

参考:
https://blog.csdn.net/LIUTAOZHU1013/article/details/89110024

那得用另一个函数,比如strncpy

是否是这意思,供参考:

#include <stdio.h>
#include <string.h>
int main()
{
    char s1[] = "12345";
    char s2[100];
    strcpy(s2, s1 + 1);
    printf("%s", s2);
    return 0;
}

  • 关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:C语言strcpy函数的实现
  • 你还可以看下c语言参考手册中的 复制一个字符串给另一个-strcpy, strcpy_s
  • 除此之外, 这篇博客: C语言 strcpy 函数的实现及注意点中的 2、不使用库函数实现 strcpy 功能 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • // C语言 版本
    #include <stdio.h>
    
    char* MyStrcpy(char* str1, const char* str2)
    {
           char* temp = str1;
           if (NULL == str1 || NULL == str2)
           {
                  printf("Argument error!");
                  return NULL;
           }
           
           while (*str2 != '\0')
           {
                  *str1++ = *str2++;
           }
           *str1 = '\0';
           str1 = temp;
           
           return str1;
    }
    
    int main()
    {
           char str1[20] = { 0 };
           char* str2 = "String!";
           MyStrcpy(str1, str2);
           printf("%s\n", str1);
           
           return 0;
    }
    

    运行结果:
    在这里插入图片描述