【面试题】C语言:模拟实现strncpy,尝试比较strncpy与strcpy区别。

原创 2016年05月30日 17:15:47

比较strncpy与strcpy联系

    两者均为字符串拷贝函数,用于拷贝字符串。

比较strncpy与strcpy区别

    strcpy比较时找字符串结束标志‘\0’,一旦找到 ‘\0’,比较结束。而后者我们可以根据实际情况完成指定长度n的字符串拷贝,因此函数strcpy里面多了一个字母n,即strncpy.由此,从此处看strncpy比strcpy功能强大一点。


    关于strcpy可以查看我的博客链接:http://10740184.blog.51cto.com/10730184/1714516

 

    strncpy代码如下:


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

char* my_strncpy(char* dest, const char* src, size_t count)
{
    assert(src);
    char* strdest= dest;
    
    while (count--)
    {
        *dest++ = *src++;
    
    }
    *dest = '\0';
    
    return strdest;
}



int main()
{
    char arr1[10] = { 0 };
    char arr2[] = "hello world!";
    char* ret = my_strncpy(arr1, arr2, 2);
    printf("%s", ret);
    system("pause");   
    return 0;
}

    

本文出自 “Han Jing's Blog” 博客,请务必保留此出处http://10740184.blog.51cto.com/10730184/1715679

【C语言】模拟实现strncpy、strncat、strncmp函数

【C语言】模拟实现strncpy、strncat、strncmp函数
  • Monster_Girl
  • Monster_Girl
  • 2016年08月01日 16:05
  • 962

C/C++中strcpy和strncpy的区别

两个都是string.h头文件中实现拷贝字符串数组功能的函数。两者的区别从字面上就可以理解,前者正常拷贝整个字符串到另一个字符串数组,后者拷贝前n个字符到另一个字符串数组。2.语法//都是参数后者拷贝...
  • FX677588
  • FX677588
  • 2016年09月29日 11:08
  • 3999

模拟实现strcpy strncpy

strcpy的作用是将一个字符串的内容复制到另外一个字符数组中,包括字符串的终结符 #include #include #include char * my_strcpy(char *dest, c...
  • jelly_gemini
  • jelly_gemini
  • 2016年10月20日 17:43
  • 587

memcpy和strcpy区别以及它们的效率分析

1、首先介绍这两个函数的原型: #include char *strcpy( char *to, const char *from ); #include void *memc...
  • vgxpm
  • vgxpm
  • 2015年08月13日 17:46
  • 2906

一个重写的strncpy(strcpy和strncpy比较)

首先你要看一下两个函数的实现源码。 第情况一: char* p="how are you ?"; char name[20]="ABCDEFGHIJKLMNOPQRS"; strcpy(name,...
  • LiuNian_SiYu
  • LiuNian_SiYu
  • 2016年10月12日 18:51
  • 323

模拟实现C语言strncpy.strncat.strncmp函数

在C语言string这个库中的strcpy,strcat,strcmp这三个函数是通过传递数组的内容来限制它们的,这样做并不是一个好方法,所以新增了strncpy,strncat,strncmp这三个...
  • pawnsir
  • pawnsir
  • 2016年05月28日 18:35
  • 885

别再耍流氓了: 请别再用strcpy, 而用strncpy

我们先来看看strcpy, 下面的程序没有问题: #include using namespace std; int main() { char str[4] = {0}; char *p ...
  • stpeace
  • stpeace
  • 2014年03月30日 14:31
  • 16684

strcpy/strncpy/sprintf/_snprintf/snprintf的区别

1. char *strcpy(char *str1, char *str2); 串拷贝 #include #include int main(void) { char string[...
  • linuxdriverdeveloper
  • linuxdriverdeveloper
  • 2012年11月19日 10:55
  • 1353

strcpy与memcpy以及strncpy

1. strcpy函数   strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。   函数原型及实现:char* strcpy(cha...
  • gogor
  • gogor
  • 2009年09月02日 15:06
  • 6498

C语言之strncpy函数

【FROM MSDN && 百科】 原型:char * strncpy(char *dest, char *src, size_t n); #include 功能:将字符串src中最...
  • hgj125073
  • hgj125073
  • 2013年01月04日 15:27
  • 7133
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【面试题】C语言:模拟实现strncpy,尝试比较strncpy与strcpy区别。
举报原因:
原因补充:

(最多只允许输入30个字)