编写 strcpy函数
已知 strcpy函数的原型是
char *strcpy(char *strDest, const char *strSrc);
其中 strDest 是目的字符串,strSrc 是源字符串。
(1)不调用 C++/C 的字符串库函数,请编写函数 strcpy
(2)strcpy能把 strSrc 的内容复制到 strDest,为什么还要 char * 类型的返回值?
第1题:
若有定义: char *st= "how are you "; ,下列程序段中正确的是
A.char a[11], *p; strcpy(p=a+1,&st[4]);
B.char a[11]; strcpy(++a, st);
C.char a[11]; strcpy(a, st);
D.char a[], *p; strcpy(p=&a[1],st+2);
第2题:
( 14 )补充完整下面的类定义:
class XCH{
char* a;
public:
XCH ( char* as ) { // 构造函数
a=new char[strlen ( aa ) +1];
strcpy ( a,aa ) ;
}
XCH& perator= ( const XCH& x ) // 重载赋值函数
Delele []a;
A=new char[strlen ( x.a ) +l];
strcpy ( a, x .a )
【 14 】 ;
}
~XCH () {delete []a;}
};
第3题:
补充完整下面的类定义:
class XCH{
char*a;
public:
XCH(char*a A) { //构造函数
a=new char[strlen(aA) +1];
strcpy(a,aA) ;
}
XCH&operator=(const XCH&x){//重载赋值函数
delete[ ]a;
a=new char[strlen(x.A) +1];
strcpy(a,x.A) ;
______;
}
~XCH( ){delete[ ]a;}
};
第4题:
阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。
[函数2.1说明]
函数strcpy的功能是将字符串str2的内容复制到字符申str1。
[函数2.1]
(1) strcpy (char *slr1, const char *str2)
{ char * temp;
while( * str2!='\0') *cp++ =(2);
(3)='\0';
return str1;
}
[函数2.2说明]
函数int strcmp(const char *str1, const char *str2)的功能是按字典序比较两个字符串str1和str2的大小。当str1<str2时返回-1,当str1>str2时返回1,否则返回0。
[函数2.2]
int strcmp(const char *str1, const char *str2)
{ while( *str1= =* str2) {
if(* s1= =(4)) return 0;
s1++;
(5);
}
if( *str1<*str2) return -1;
return 1;
}
第5题:
请编写能直接实现char * strcpy(char * pstrDest,const char * pstrSource)函数功能的代码。
4.
char * strcpy(char * pstrDest,const char * pstrSource)
{
assert((pstrDest!=NULL)&&(pstrSource!=NULL));
char * pstr=pstrDest;
while((*(pstrDest++)=*(pstrSource++))!='\0');
return pstr;
}
第6题:
补充完整下面的类定义:
class XCH{
char*a:
public:
XCH(char球an){ //构造函数
a=new char[strlen(aft)+1];
strcpy(a,aA);
}
XCH&operator=(const XCH&x){ //重载赋值函数
delete[]a;
a=new char[strlen(X.A)+1];
strcpy(a,x.A);
【 】
}
一XCH(){delete[]a;}
};
第7题:
已知strcpy 的函数原型:char *strcpy(char
*strDest, const char *strSrc)其中strDest 是目的字符
串,strSrc 是源字符串。不调用C++/C 的字符串库
函数,请编写函数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++ = *strSrc++) != ‘\0’)
;
return tempptr ;
}
第8题:
库函数strcpy用以复制字符串,若有以下定义和语句: char str1[]="china",str2[10],*str3,*str4="china"; 则对库函数strcpy的正确的调用是_______。
A.strcpy(strl,"people");
B.strcpy(str2,"people");
C.strcpy(str3,"people");
D.strcpy(str4,"people");
第9题:
若有下列说明,则( )不是对strcpy库函数的正确的调用。strcpy库函数用于复制一个字符串:char*str1="abcdt",str2 [10],*str3="hijklmn",*str4[2],*str5="aaaa";
A.strcpy(str2,str1)
B.strcpy(str3,str1)
C.strcpy(str4,str1)
D.strcpy(str5,str1)
第10题:
以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址。 #include <stdio.h> #include <string.h> char *scmp(char*s1,char*s2) { if(strcmp(s1,s2)<0) return(s1); else return(s2); } main() { int i; char string[20],str[3][20]; for(i=0;i<3;i++) gets(str[i]); strcpy(string,scmp(str[0],str[1])); /*库函数strcpy对字符串进行复制*/ strcpy(string,scmp(string,str[2])); printf("%s\n",string); } 若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为( )。
A.abcd
B.abba
C.abc
D.baca
第11题:
字符串的处理函数strcpy是系统定义的,作用是进行字符串拷贝,两个参数,返回值为char*。
第12题:
对
错
第13题:
若有定义:char *x="abcdefghi";,以下选项中正确运用了strcpy函数的是______。
A.char y[10]; strcpy(y,x[4]);
B.char y[10]; strcpy(++y,&x[1]);
C.char y[10],*s; strcpy(s=y+5,x);
D.char y[10],*s; strcpy(s=y+1,x+1);
第14题:
若有下列说明,则( )不是对strcpy库函数的正确的调用。strcpy库函数用于复制一个字符串:char*strl="abcd",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa";
A.language
B.lnug
C.有语法错误
D.lang
第15题:
设有语句:char str1[]="string",str2[8],*str3,*str4="string";,则下列对库函数strcpy调用不正确的是
A.strcpy(str1,"Hello1");
B.strcpy(str2,"Hello2");
C.strcpy(str3,"Hello3");
D.strcpy(str4,"Hell04");
第16题:
若有以下说明,则( )不是对strcpy库函数正确的调用。strcpy库函数用于复制一个字符串:char*strl="abCd",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa";
A.strcpy(str2,strl)
B.strcpy(str3,strl)
C.strcpy(strl,str2)
D.strcpy(str5,strl)
第17题:
以下程序中函数scmp功能是返回形参指针s1和s2所指字符串中较小字符串的首地址。#includ<string. h>char *scmp(char *s1,char *s2){ if(strcmp(s1,s2)<0) return(s1); else return(s2);}main(){ int i;char string[20],str[3][20]; for(i=0;i<3;i++) gets(str[i]); strcpy(string,scmp(str[0],str[1])); //库函数 strcpy 对字符串进行复制 strcpy(string,scmp(stfing,str[2])); puts(string); }若运行时依次输入: abed、abba 和abc三个字符串,则输出结果为( )。
A.abed
B.abba
C.abc
D.abca
第18题:
输入二个 64 位的十进制数,计算相乘之后的乘积
已知 strcpy 函数的原型是:
char * strcpy(char * strDest,const char * strSrc);
1.不调用库函数,实现strcpy 函数。
2.解释为什么要返回char *。
第19题:
设有语句:char str1[]="string", str2[8], *ste3, *str4="string";,则下列不是对库函数 strcpy的正确调用的是______。
A.strcpy(str1,"HELLOI");
B.strcpy(str2,"HELLO2");
C.strcpy(str3,"HELLOY");
D.strcpy(str4,"HELLO4");
第20题:
有以下程序(strcpy为字符串复制函数,strcat为字符串连接函数): #include<stdio.h> #include<string.h> main( ) {char a[10]="abc",b[10]="012",c[10]="xyz"; strcpy(a+1,b+2); puts(strcat(a,c+1)); } 程序运行后的输出结果是( )。
A.al2xyz
B.12yz
C.a2yz
D.bc2yz
第21题:
若有定义:char*st="how are you";下列程序段中正确的是
A.char a[11],*p;strcpy(p=a+1,&st[4]);
B.char a[11];strcpy(++a,st);
C.char a[11];strcpy(a,st);
D.char a[],*p;strcpy(p=&a[1],st+2);
第22题:
设有以下语句: char str1[]= “string”,str2[8],*str3,*str4= “ string”; 则不能对库函数strcpy(复制字符串)的正确调用的是()
第23题:
以下与库函数strcpy(char*p1,char*p2)功能不相等的程序段是()