已知strcpy的函数原型:char *strcpy(char *strDest, const char *strSrc),编写函数 strcpy

已知strcpy的函数原型:char *strcpy(char *strDest, const char *strSrc)其中strDest 是目的字符串,strSrc 是源字符串。不调用C++/C 的字符串库函数,请编写函数 strcpy。

/*
编写strcpy函数(10分)
已知strcpy函数的原型是
??? char *strcpy(char *strDest, const char *strSrc);
??? 其中strDest是目的字符串,strSrc是源字符串。
(1)不调用C++/C的字符串库函数,请编写函数 strcpy
(2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?
答:为了 实现链式表达式。??????????????????????????? // 2分
例如??? int length = strlen( strcpy( strDest, “hello world”) );
*/

#include <assert.h>
#include <stdio.h>
char*strcpy(char*strDest, constchar*strSrc)
{
??? assert((strDest!=NULL) && (strSrc !=NULL));?????
??? char* address = strDest;

??? while (*strDest != ‘\0‘){? // equal to "//while((*strDest++=*strSrc++)!=‘\0‘);"
??????????? *strDest = *strSrc;
??????????? strSrc ++;
??????????? strDest ++;
??????? }      
??? return address ;???????????????????????????????    
}

Note:(*strDest++=*strSrc++) 的返回值为子表达式的左值,即strDest

?

?

时间: 2024-10-14 20:52:23

已知strcpy的函数原型:char *strcpy(char *strDest, const char *strSrc),编写函数 strcpy的相关文章

char * p = &quot;abc&quot;与const char *p = &quot;abc&quot;

char * p = "abc"与const char *p = "abc"的区别是什么呢? 第一个语句会产生问题: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] 此时我们只需要改成第二个用法警告就消失了,这是为什么呢? 我们来分别理解以下两个语句,首先要清楚的是char * p语句定义的p是一个指针变量,假设我们用的是第一个语句,那么我们所表达的意思

已知文件 a.txt 文件中的内容为“bcdeadferwplkou”, * 请编写程序读取该文件内容,并按照自然顺序排序后输出到 b.txt 文件中。 * 即 b.txt 中的文件内容应为“abcd…………..”这样的顺序。

import java.io.*;class SortChar{ private String str; private char arrayList[]; private BufferedReader br; //字符流 private File f; //读取的文件 SortChar( String s ) { f=new File( s ); } public void start() { if( inputData()==-1 ) { return; } //对字符数组进行冒泡排序 so

C语言中strcpy,strcmp,strlen,strcat函数原型

//strcat(dest,src)把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0' char *strcat(char * strDest, const char *strSrc) { char *res=strDest; assert((strDest!=NULL)&&(strSrc!=NULL)); while(*strDest)strDest++; while(*strDest=*strSrc) { strDest++; strSrc++; }

C语言中的可变参数函数 三个点“…”printf( const char* format, ...)

第一篇 C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为: int printf( const char* format, ...); 它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的(用三个点“…”做参数占位符),实际调用时可以有以下的形式: printf("%d",i); printf("%s",s); printf("the number is %d ,string is:%s",

自定义实现strcpy函数原型

char *strcpy(char *strDest, const char *strSrc){        if ( strDest == NULL || strSrc == NULL)                return NULL ;        if ( strDest == strSrc)                return strDest ;        char *tempptr = strDest ;        while( (*strDest++ = *

C语言strcat,ctrcpy函数原型和改进

函数原型如下: char *strcpy(char *strDest, const char *strSrc) { char *address=strDest; assert((strDest!=NULL) && (strSrc!=NULL)); while(*strSrc!='\0') { *strDest++=*strSrc++; } *strDest='\0'; return address; } char *strcat(char *strDest, const char *str

OpenCV使用二维特征点(Features2D)和单映射(Homography)寻找已知物体

使用二维特征点(Features2D)和单映射(Homography)寻找已知物体 目标 在本教程中我们将涉及以下内容: 使用函数 findHomography 寻找匹配上的关键点的变换. 使用函数 perspectiveTransform 来映射点. 理论 代码 这个教程的源代码如下所示.你还可以从 以下链接下载到源代码 #include <stdio.h> #include <iostream> #include "opencv2/core/core.hpp"

const char* to char*(当函数传递参数时)

来自 https://blog.csdn.net/rongrongyaofeiqi/article/details/52442169 https://blog.csdn.net/hebbely/article/details/79577880 简述: 1) char*转string:可以直接赋值. 2) char[]转string:可以直接赋值. 3) char*转char[]:不能直接赋值,可以循环char*字符串逐个字符赋值,也可以使用strcpy_s等函数. 4) string转char[

已知s.txt文件中有一个这样的字符串 请编写程序读取数据内容,把数据排序后写入 ss.txt文件

package cn.idcast5; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Arrays; /* * 需求:已知s.txt文件中有一个这样