脑动力:C语言函数速查效率手册
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.1.1 复制字符串到指定的数组中stpcpy()

【函数原型】char* stpcpy(char* dest,char* src)

【功能讲解】把src所指的由NULL结束的字符串复制到dest所指的数组中,返回指向dest结尾处字符(NULL)的指针。

【参数说明】dest为目的地址,src为要被复制的字符串地址。src和dest所指内存区域不可以重叠,且dest必须拥有足够的空间放置src包含的字符串。

【程序示例】本例程是验证字符串复制效果,利用复制功能把两个字符串连接成一个完整的字符串,然后输出(使用Turbo C 2.0调试,这个函数没有包含在VC++ 6.0中)。

      /*函数stpcpy()示例[请使用Turbo C 2.0调试*/
      #include<string.h>
      int main(void)
      {
        char buffer[100];/*定义一个字符数组*/
        char* dest = buffer;
        dest = stpcpy(dest,"You are the best thing that's");
        printf("%s\n",buffer);/*格式化*/
        dest = stpcpy(dest," ever been mine!");
        printf("%s\n",buffer);
        return 0;
      }

【运行结果】

      You are the best thing that’s
      You are the best thing that’s ever been mine!

【实例讲解】例子就是简单的字符串的复制,仔细看看代码,是不是发觉有点古怪。首先看第一次复制字符dest = stpcpy(dest,"You are…");,根据函数功能得出这句话是把后面的字符串复制到dest所指向的数组中,且dest指向字符串的结尾处,这样就可以再次利用dest继续往后面添加字符串,而没有覆盖之前的字符串,最后的结果是一个完整的句子。如果自己想试试,可以使用直接输出语句“printf("%s\n",dest);”输出结果应该为空,返回的指针应指向字符的结尾。