C++ strcat

原创 2015年07月07日 11:35:54

百度了一下网络上的代码,发现大多数是有问题的,自己琢磨着写了一个加深一下理解。
字符串拼接:

char* strcat(char* s,char* t)
{
    assert((s != NULL) && (t != NULL));//对输入源进行检测
    char* stradd = (char*)malloc(sizeof(char)*(strlen(s)+strlen(t)+1));
    assert(stradd != NULL);
    char *temp = stradd;
    while(*temp++ = *s++)
    {   
    }
    *temp--;
    while(*temp++ = *t++)
    {     
    }
    return stradd;
}

调用:

int main()
{
    cout <<"strcat" << strcat("12345","6789")<<endl;
}

输出:
这里写图片描述

看一下while(*temp++ = *s++){}执行顺序:
1 将*s值赋值给*temp;
2 判断*temp值是否为空(‘\0’),如果是,执行第3步,然后跳出循环
3 temp和s指向下一个地址,转第1步

while(*temp++ = *s++)
    {   
    }
    //此时temp指向'\0'的下一位,需要把指针回退一位,让temp指向'\0'
    *temp--;
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

c++实现字符串strcat()连接

//字符串连接函数 #include #include using namespace std; char *string_cat(char *source,int s1,const ch...

C++primer 4.3 C风格字符串--字符数组(strlen、strcpy、strcat)上

简介 建议 一C风格字符串 1C风格字符串简介 二C风格字符串的使用 三C风格字符串的标准库函数 四尽可能使用标准库类型string简介1. C风格字符串是以空字符null结束的字符数组;2. 字符串...

字符串拼接函数strcat的实现 while(*p++ !='\0')跳出后,p究竟指向哪? C/C++求职面试必备考点(三)

在研究strcat函数实现的时候,发现了while(*p++ !=‘\0’)的大秘密,也让我发现了在上篇博客中我犯的一个错误。原以为跳出后,P指向'\0',而实际上并非如此!我按跳出后P指向'\0',...

c++:strcat潜在的错误不报告

#include #include using namespace std; int main() { char a[]="hello"; char b[]="world"; cout ...

C/C++实现strcpy和strcat两个功能

strcmp和strcat是string.h头文件中分别实现字符串数组拷贝与拼接功能的函数,详细使用相信大家都了解了,如果还不了解看看实例 C/C++笔试必须熟悉掌握的头文件系列(四)——string...

c++运用socket获取网页源代码以及strcat与strcat_s的小差别

最近在学习用Socket套接字方法获取网页源代码,需要发送GET请求,然后通过recv接收,先把代码贴上(也可以供以后参考)。 工程不适用unicode。 //测试socket连接网络 //获...

strcat函数

  • 2015年02月04日 15:11
  • 6KB
  • 下载

C语言中strcat的实现方法

最近看到一道题目要求, 自己码代码实现strcat的功能, 于是自己实现了一个如下: /* * 12.编写一个函数JOIN,让它实现字符串连接运算功能。 */#include #include ...

strcpy,strcat,strcmp,strlen,strchr

  • 2011年06月18日 15:22
  • 26KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ strcat
举报原因:
原因补充:

(最多只允许输入30个字)