编写一个函数,实现字符串的拷贝。主函数中直接初始化一个字符数组(定义时赋字符串初值),通过puts函数输出原串和目的串。

函数原型:int myStrcp(char *pDes,char *pSrc); // pDes 指向目标串,pSrc指向源串,函数返回拷贝字符的长度

程序运行结果示例:

源串是:

No cross, no crown.

目标串是:

No cross, no crown.

一个实现,供参考:


#include <stdio.h>

int myStrcp(char * pDes,char *pSrc){
    
    int i=0;
    
    //如果原字符串为空指针,则返回0,说明没有字符进行了复制 
    if(pSrc==NULL){
        return 0;
    }
    
    //访问源字符串,直到整个字符串访问到结尾空字符'\0' 
    while(pSrc[i]!='\0'){
        pDes[i]=pSrc[i]; //把源字符串的每个字符逐一复制到目标字符串位置 
        i++; //访问源字符串下一个字符 
    } 
    pDes[i]='\0'; //给目标字符串加字符串结束的空字符'\0' 
    
    return i;  //返回复制的字符个数 
         
}

int main(void){
    
    char str[20]="No cross, no crown.";
    char dStr[20];
    
    myStrcp(dStr,str);
    puts("原串为:");
    puts(str);
    puts("目的串为:");
    puts(dStr);
    
    return 0;
} 

img