一个简单的连接字符串的问题
定义一个常量字符串值为hello要求用户输入一个名称,该名称连接在此常量后面,显示为hellomy_name。使用new和delete运算符为该字符串分配和回收内存。
提示:在连接字符串之前,将该常量赋予char*类型的另一个数据成员
问题点数:20、回复次数:5Top
1 楼freefalcon(心宇—消失中...)回复于 2004-05-03 12:09:23 得分 10
#include <iostream>
#include <string>
using namespace std;
int main()
{
char* hi = "hello";
string my_name;
cout << "your name:";
cin >> my_name;
char* res = new char[strlen(hi) + my_name.length() + 1];
strcpy(res, hi);
strcat(res, my_name.c_str());
cout << res;
delete [] res;
system("Pause" );
return 0;
}
大杂烩Top
2 楼qyet(少年心气)回复于 2004-05-03 12:26:04 得分 5
//借花献佛:)
#include <iostream>
#include <string>
using namespace std;
int main()
{
char* hi = "hello ";
char *my_name = new char[100];
cout << "your name:";
cin >> my_name;
char* res = new char[strlen(hi) + strlen(my_name) + 1];
strcpy(res, hi);
strcat(res, my_name);
cout << res <<endl;
delete [] res;
delete [] my_name;
return 0;
}Top
3 楼jiudian(九点)回复于 2004-05-03 12:33:17 得分 0
写的不错,加点注释吧谢谢,马上会加分
using namespace std;
char* res = new char[strlen(hi) + my_name.length() + 1];Top
4 楼cngdzhang()回复于 2004-05-03 12:37:02 得分 5
using namespace std;//vc中要用的,tc没有的,意思是使用std命名空间
char* res = new char[strlen(hi) + my_name.length() + 1];
//分配内存 长度为 "hello"串的长度+用户名字的长度+字符串结束标志'\0'长度1
Top
5 楼freefalcon(心宇—消失中...)回复于 2004-05-03 12:42:53 得分 0
#include <iostream>
#include <string> //注意这里的头文件都没有带.h后缀,因为用的是标准C++库,带.h的是标准出台以前的库
using namespace std; // 标准库引入了名字空间的概念(namespace),必须通过名字空间才能对其中的类和函数等进行访问
char* res = new char[strlen(hi) + my_name.length() + 1]; //hi是c风格的字符串,通过c函数strlen获得其长度,my_name是string类实例,直接通过成员函数获得长度,+1是为了多分配一个字节,以供c风格字符串末尾的终止符\0使用
Top




