itgle.com

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

题目

已知strcpy 的函数原型:char *strcpy(char

*strDest, const char *strSrc)其中strDest 是目的字符

串,strSrc 是源字符串。不调用C++/C 的字符串库

函数,请编写函数strcpy。


相似考题
更多“已知strcpy 的函数原型:char *strcpy(char*strDest, const char *strSrc)其中strDest 是目的字符串,strSrc 是源字符串。不调用C++/C 的字符串库函数,请编写函数strcpy。”相关问题
  • 第1题:

    下列程序中的函数strcpy2()实现字符串两次复制,即将t所指字符串复制两次到s所指内存空间中,合并形成一个新字符串。例如,若t所指字符串为:efgh,调用strcpy2后,s所指字符串为:efghefgh。请填空。#include <stdio.h>#include <string.h>void strcpy2(char *s,char *t){char *p=; while(*s++=*t++); s=s-1; while(=*p++);}main(){char str1[100]="abcd",str2[]="efgh"; strcpy2(str1,str2); printf("%s\n",strl);}


    正确答案:t *s++
    两种赋值的方法是一样的,将指向的字符的地址赋给s,然后各自增1,s=s-1的目的是在赋值的时候多加了1.

  • 第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;}

    };


    正确答案:return*this
    return*this

  • 第4题:

    若有以下说明,则( )不是对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)


    正确答案:C
    strcpy(sl,s2)函数的功能是将字符串s2复制到字符串s1中。要保证s1存储区能容纳下s2字符串。

  • 第5题:

    以下程序中函数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


    正确答案:B

  • 第6题:

    输入二个 64 位的十进制数,计算相乘之后的乘积

    已知 strcpy 函数的原型是:

    char * strcpy(char * strDest,const char * strSrc);

    1.不调用库函数,实现strcpy 函数。

    2.解释为什么要返回char *。


    正确答案:
     

  • 第7题:

    编写 strcpy函数

    已知 strcpy函数的原型是

    char *strcpy(char *strDest, const char *strSrc);

    其中 strDest 是目的字符串,strSrc 是源字符串。

    (1)不调用 C++/C 的字符串库函数,请编写函数 strcpy

    (2)strcpy能把 strSrc 的内容复制到 strDest,为什么还要 char * 类型的返回值?


    正确答案:
     

  • 第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");


    正确答案:B
    解析:strcpy(字符数组1,字符串2)其作用是将字符串2复制到字符数组1中去。注: (1)字符数组1必须定义得足够大; (2)“字符数组1”必须写成数组名的形式; (3)复制时连同字符串后面的'\0'一起复制到字符数组1中。

  • 第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)


    正确答案:C
    解析:strcpy(s1,s2)函数的功能是将字符串s2复制到字符串s1中(注意:要保证s1存储区能容纳下s2字符串)。

  • 第10题:

    设有以下语句:  char str1[]= “string”,str2[8],*str3,*str4= “ string”;      则不能对库函数strcpy(复制字符串)的正确调用的是()

    • A、strepy(str1,“HELLO1”);
    • B、strepy(str2,“HELL02”);
    • C、strcpy(str3, “HELL03”)
    • D、strcpy(str4, “HELLO4”);

    正确答案:C

  • 第11题:

    字符串的处理函数strcpy是系统定义的,作用是进行字符串拷贝,两个参数,返回值为char*。


    正确答案:正确

  • 第12题:

    判断题
    字符串的处理函数strcpy是系统定义的,作用是进行字符串拷贝,两个参数,返回值为char*。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第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);


    正确答案:D
    解析:选项A中x[4]是取字符e,也就是将字符复制到y中,strcpy实现的是地址的复制所以选项A错误;选项B中++y是错误的,不允许对常量进行自加运算(y是—个确定的地址值),所以选项B错误;选项C指针变量s指向了y向后的第5位,则存放x时会出现越界问题,所以选项C错误;选项D中,指针变量s指向了y向后的第—位,此时s可存放数据的长度为9,而地址“x+1”起的字符串的地址长度也刚好为9(包括“\0”),所以开始复制不会出现地址越界问题,故选项D正确。

  • 第14题:

    若有下列说明,则( )不是对strcpy库函数的正确的调用。strcpy库函数用于复制一个字符串:char*strl="abcd",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa";

    A.language

    B.lnug

    C.有语法错误

    D.lang


    正确答案:B
    解析: 本程序首先定义了静态字符数组a,然后将指针p指向数组a的首地址。
    第1次for循环,p=a,p指向数组的第1个元素,*p是取指针p所指地址的内容,输出1;第2次for循环,p=p+2,则p指向数组的第3个元素,*p是取指针p所指地址的内容,输出n;第3次for循环,p= p+2,则p指向数组的第5个元素,*p是取指针p所指地址的内容,输出u;第4次for循环,p=p+2,则p指向数组的第7个元素,*p是取指针p所指地址的内容,输出g,结束循环。

  • 第15题:

    阅读下列函数说明和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;

    }


    正确答案:char * (2) * str2++ (3) * cp (4) ‘\0’ (5) s2++或 ++s2
    char * (2) * str2++ (3) * cp (4) ‘\0’ (5) s2++或 ++s2 解析:(1)根据函数说明,char *是函数strcpy的返回值类型;
    (2)while循环是字符串复制的关键,它将str2的字符一个个复制到cp;
    (3)字符复制完成后,应在字符串cp的末尾添加结束符;
    (4)~(5):while循环的功能是从字符串首开始逐个比较str1和str2的每一字符,如果循环一直执行到两字符串末尾,则说明两串相等,应返回0值。

  • 第16题:

    请编写能直接实现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;

      }

  • 第17题:

    补充完整下面的类定义:

    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;}

    };


    正确答案:return XCH(A)
    return XCH(A) 解析:要函数返回的是XCH&类型,因此这里要调用XCH构造函数定义一个临时的XCH对象作为返回值。

  • 第18题:

    已知类 String 的原型为

    class string

    {

    public:

    string(const char *str=null);//普通构造函数

    string(const string &other);//拷贝构造函数

    ---string(void);

    string &operate=(const string &other);//赋值函数

    private:

    char * m-data;//用于保存字符串

    };

    请编写 string 的上述4 个函数


    正确答案:
     

  • 第19题:

    编写类 String 的构造函数、析构函数和赋值函数

    已知类 String的原型为:

    class String

    {

    public:

    String(const char *str = NULL); // 普通构造函数

    String(const String &other); // 拷贝构造函数

    ~ String(void); // 析构函数

    String & perate =(const String &other); // 赋值函数

    private:

    char *m_data; // 用于保存字符串

    };

    请编写 String的上述 4 个函数。


    正确答案:
     

  • 第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


    正确答案:C
    第一次执行字符串的复制函数a的值是a2,第二次执行的是字符串的连接函数,所以运行结果为a2yz。

  • 第21题:

    以下程序中函数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


    正确答案:B
    解析:本题考查返回指针值的函数。一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据,即地址。函数strcmp(字符串1,字符串2)的作用是比较字符串1和字符中2。如果字符串1=字符串2,函数值为0;如果字符串1,字符串2,函数值为一正整数;如果字符串1字符串2,函数值为一负整数。本题程序中scmp函数的作用是比较s1和s2的大小,对strcmp函数的返回值进行判断,如果字符串1字符串2,则返回字符串1的值,反之返回字符串2的值。所以main函数中scmp(str[0],str[1])的返回值是abba,通过strcpy函数把返回值abba复制到string中。当执行scmp(string,str[2])时,scrap函数的返回值为abba,再次复制到string中,最后string的值为abba。

  • 第22题:

    语句()能正确完成赋字符串的功能。

    • A、chars[4];s[0]=“string”
    • B、char*s;get(s)
    • C、char*s[]=“string”
    • D、char*s;strcpy(s,“string”)

    正确答案:C

  • 第23题:

    以下与库函数strcpy(char*p1,char*p2)功能不相等的程序段是()

    • A、strcpyl(char*p1,char*p2){while((p1++=p2++)!=’/0’);}
    • B、strcpy2(char*pl,char*p2){while((*p1=*p2)!=’/0’)pl++,p2++;}
    • C、strcpy3(char*pl,char*p2){while((*p1++=*p2++);)
    • D、strcpy4(char*p1,char*p2){whi1e(*p2)*pl++=*p2++;}

    正确答案:D