关于strcpy以及strcat之类函数的问题(VC6.0)

来源:百度知道 编辑:UC知道 时间:2024/06/14 01:25:37
这两个函数只不过是简单的将计算的结果复制到第一个参数所指的地址(用VC的话很好发现,也只有这样才符合C的语法),这样的话,如果用malloc或者new申请内存空间的话,就没有足够的空间储存,数据溢出后就会报错,这个该如何解决,因为这两个函数是C的函数所造成的,C++里有没有类似的函数?难道要自己写?
比如 char ch1[]="a",ch2[]="ab";
执行strcpy(ch1,ch2);就会报错。
问题不在new或者delete。

我知道发生问题的原因,需要的是解决方案,希望c++存在自带的函数解决,可是我不知道是什么,希望大侠告诉我

我知道存在string类,可惜我在VC6.0里include<cstring.h>的时候那个文件不存在啊!!!!!

用string类咯,调用string的append方法就可以了(实现strcat),有6个重载
basic_string &append( const basic_string &str );
basic_string &append( const char *str );
basic_string &append( const basic_string &str, size_type index, size_type len );
basic_string &append( const char *str, size_type num );
basic_string &append( size_type num, char ch );
basic_string &append( input_iterator start, input_iterator end );
向你上面的情况
string ch1("a");
ch1.append("ab");

头文件像下面就可以了,注意命名空间
#include <iostream>
#include <string>
using namespace std;

new 是申请内存
delete 是释放

ch1长度为1, ch2的长度为2,
ch1指向的空间不能装载2个字节