注册 登录
编程论坛 C语言论坛

【新人求助】:用指针实现strcpy

l15709091259 发布于 2020-06-07 16:13, 2234 次点击
如何编写程序用指针实现strcpy
4 回复
#2
吹水佬2020-06-07 17:26
两个串指针齐步走确保不溢出就好了
#3
吕孟伟2020-06-07 21:37
程序代码:
#include<stdio.h>

char* mystrcpy(char* dest, char* source)
{
    if(dest == NULL || source == NULL){
        return NULL;
    }
    while(*dest++ = *source++){
        ;
    }
    return dest;
}

int main(void)
{
    char dest[100];
    char* source = "hello world";
    mystrcpy(dest, source);
    printf("%s\n", dest);
    return 0;
}
#4
nanshahyz2020-06-07 21:58
#include"stdio.h"
#include"string.h"
int main()
{
    char s1[50], s2[50];
    puts("please input string:");
    gets(s2);
    strcpy(s1, s2);        /*把源字符数组(s2)复制粘贴到目的字符数组中*/
    printf("数组1中的内容:%s\n", s1);
}
不知道这个能不能帮到你
#5
ditg2020-06-07 22:10
直接实现的已经比较少见,多是再调用memcpy函数;进去之后为了实现运行效率又出现一堆问题假设,必须要考虑边界处理的问题,就算运气好全对齐,还有数据移动速度问题,因为单字节传送指令movsb效率最低,再假设传送指令都是1个时钟周期,又出现一个临界值问题,过了临界值可以考虑用四字节movsl或八字节movsq更快速地复制,但实际上又出现一个临界值问题,随着硬件水平提升,实现方式又得修改……

[此贴子已经被作者于2020-6-7 23:47编辑过]

1