您的位置:首页 > 其它

用指针和数组实现字符串复制

2017-05-19 20:26 190 查看
/****************

用指针和数组实现字符串复制
****************/



#include<stdio.h>

#define N 80

void MyStrcpy(char dstStr[],char srcStr[])        //使用字符串数组作为函数参数复制字符串

{

    int i = 0;

    while(srcStr[i]!= '\0')

    {

        dstStr[i] = srcStr[i];        //复制下标

        i++;        //右移下标

    }

    dstStr[i] = '\0';        //尾部加字符串结束标志

}

/*

void MyStrcpy(char *dstStr,char *srcStr)        //用字符指针作为函数参数,实现字符串复制

{

    while(*srcStr != '\0')        //若当前srcStr所指字符不是字符串结束标志,'\0' 是字符串的结束符,任何字符串之后都会自动加上'\0'。

    {

        *dstStr = *srcStr;        //复制字符串

        srcStr++;        //使srcStr指向下一个字符

        dstStr++;        //使dstStr指向下一个储存单元

    }

    *dstStr = '\0';        //在字符串dstStr尾部添加字符串结束标志

}

*/

int main()

{

    char a
,b
;

    printf("输入字符串:");

    gets(a);

    MyStrcpy(b,a);

    printf("复制后:");

    puts(b);

    return 0;

}

/********************

\0 为字符串结束符,比如说:

abcd (空格)cdefg;

存入数组时,空格作为一个字符占有一个字节的空间,我们可以把它看着一个字符去处理。而“\0 ” 则是这个字符串的结束标识符,也占有一个字节的空间,表示字符串结束!

char a[]={'a','b','c','d', ,'c','d','e','f','g','\0'}

'a''b'    'c''d'' ''c''d'f''g''\0'

附:如果用scanf来接收字符串的话,字符串中不能含有空格,否则将以空格作为串的结束符。如果你键入得是hello world 那么实际上scanf只能获取hello 这个单词。

所以要接收空格的话可以用gets()这个函数。gets(str)是读入一串以回车结束的字符,顺序存入到以str为首地址的内存单元中,最后写入字符串结束标志 “\0 “,

同样在输出字符串时要用puts(),输出时直到遇到 \0 为止,最后输出一个换行符。

*************************/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐