使用strcat连接字符串
来源:互联网 发布:java rest接口实例 编辑:程序博客网 时间:2024/05/17 07:10
#include <iostream>using namespace std;int main(int argc, char* argv[]){char* str1 = "hello";char* str2 = "china";char* str3 = NULL;str3 = new char[strlen(str1) + strlen(str2) + 1];str3[0] = '\n';strcat(str3,str1);strcat(str3,str2);cout<<str3<<endl;return 0;}
上面的程序代码有什么问题?输出什么?
答案:str3指向的堆内存没有初始化,不含有字符串结束符号。输出随机值
strcat函数 strcat(char* dest, const char* src)
把字符串src加到dest字符串之后,dest字符串结束的位置就是新连接的src的位置。
<pre name="code" class="cpp">str3 = new char[strlen(str1) + strlen(str2) + 1];new申请的内存并没有被初始化,内存中的值都是随机数。调用strcat不能把str1的内容复制呆内存块当中,并且会导致数组越界。
应该把 str3[0] = '\0';
#include <iostream>using namespace std;int main(int argc, char* argv[]){<span style="white-space:pre"></span><span style="white-space:pre"></span>char* str1 = "hello";<span style="white-space:pre"></span>char* str2 = "china";<span style="white-space:pre"></span>char* str3 = NULL;<span style="white-space:pre"></span>str3 = new char[strlen(str1) + strlen(str2) + 1];<span style="white-space:pre"></span>str3[0] = '\0';<span style="white-space:pre"></span>strcat(str3,str1);<span style="white-space:pre"></span>strcat(str3,str2);<span style="white-space:pre"></span>cout<<str3<<endl;<span style="white-space:pre"></span>return 0;}
hellochina
0 0
- 使用strcat连接字符串
- strcat 字符串连接
- 连接字符串strcat()函数
- 使用strcpy和strcat实现字符串的连接
- c++实现字符串strcat()连接
- 连接两个字符串,不用strcat
- strcat(连接两字符串)
- strcat 连接字符串,c语言实现
- strcat()连接两个字符串的问题分析
- 连接两个字符串不用strcat函数
- strcat()连接两个字符串的问题分析
- C语言strcat()函数:连接字符串
- 两个字符串连接,不用strcat函数
- strcat函数——字符串连接函数
- 自写字符串连接函数strcat
- 自己实现字符串连接函数strcat
- C语言strcat()函数:连接字符串
- 字符串连接(strcat)的函数
- 字符串模式匹配之Brute force、KMP、Horspool算法
- 【Financial Markets】5. Trading strategy (1)
- Android gc垃圾回收研究学习
- 【LeetCode从零单排】No133. clon graph (BFS广度优先搜索)
- P51第18题
- 使用strcat连接字符串
- spring 配置依赖
- 2014年应该学习的十种编程语言
- 欢迎使用CSDN-markdown编辑器
- PHP 函数
- (others)LCP
- 高可用可伸缩架构实用经验谈
- java反射获得参数是数组的方法的两种方法
- windows 7 下编译 nopoll