相关疑难解决方法(0)

strncpy和memcpy之间的区别?

我如何才能获得s[7]s

我没有发现strncpy和之间的任何区别memcpy.如果我想打印输出s,以及s[7](像qwertyA),我必须在以下代码中进行哪些更改:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    char s[10] = "qwerty", str[10], str1[10];
    s[7] = 'A';
    printf("%s\n",s);
    strncpy(str,s,8);
    printf("%s\n",str);
    memcpy(str1,s,8);
    printf("%s\n",str1);
    return 0;
}
/*
O/P
qwerty
qwerty
qwerty
*/
Run Code Online (Sandbox Code Playgroud)

c memcpy strncpy

18
推荐指数
2
解决办法
3万
查看次数

memcpy()和strncpy()有什么区别,因为后者很容易替代前者?

memcpy()和之间有什么重大区别strncpy()?我问这个是因为我们可以轻松地改变strncpy()以复制我们想要的任何类型的数据,而不仅仅是字符,只需将前两个非char*参数转换char*为第三个参数,并将第三个参数更改为非char类型的大小的倍数.在下面的程序中,我已经成功地使用它来将整数数组的一部分复制到其他程序中,并且它的效果一样好memcpy().

 #include <stdio.h>
    #include <string.h>


    int main ()
    {
    int arr[2]={20,30},brr[2]={33,44};
    //memcpy(arr,brr,sizeof(int)*1);
    strncpy((char*)arr,(char*)brr,sizeof(int)*1);
    printf("%d,%d",arr[0],arr[1]);

    }
Run Code Online (Sandbox Code Playgroud)

同样,我们可以使其适用于float其他数据类型.那么有什么重大区别memcpy()呢?

PS:另外,我想知道为什么memcpy()string.h头文件中,几乎所有的库函数都与字符串有关,而memcpy()在本质上更通用.任何原因?

c memcpy strncpy string.h

12
推荐指数
2
解决办法
9016
查看次数

标签 统计

c ×2

memcpy ×2

strncpy ×2

string.h ×1