练习12.23:编写一个程序,连接两个字符串字面常量,将结果保存在一个动态分配的char数组中。重写这个程序,连接两个标准库string对象。
//练习12.23
/*
*2016/1/22
*问题描述:编写一个程序,连接两个字符串字面常量,将结果保存在一个动态分配的char数组中。重写这个程序,连接两个标准库string对象。
*说明:使用了strcat函数,包含在string.h中
*作者:Nick Feng
*邮箱:nickgreen23@163.com
*/
#include <iostream>
#include <string>
#include <new>
#include <string.h>
using namespace std;
int main()
{
/*连接字符串字面常量*/
char c1[7] = "hello,";
char c2[8] = "world!";
char c3[15];
strcat(c3,c1);
strcat(c3,c2);
char *cp1 = new char[15];
for(int i =0 ;i != 15;++i)
*(cp1 + i ) = c3[i];
for(int i =0 ;i != 15;++i)
cout << c3[i];
cout << endl;
delete [] cp1;
/*连接标准库字符串*/
string s1 = "hello,";
string s2 = "world!";
string s3="";
s3 = s1 + s2;
char *cp = new char[s3.length()];
for(auto i = 0; i != s3.length();++i)
*(cp + i) = s3[i];
for(auto i = 0; i != s3.length();++i)
cout << *(cp + i);
cout << endl;
delete [] cp;
return 0;
}
练习12.24:编写一个程序,从标准程序读取一个字符串,存入一个动态分配的字符数组中。描述你的程序如何处理变长输入。测试你的程序,输入一个查处你分配的。
//练习12.23
/*
*2016/1/22
*问题描述:编写一个程序,从标准程序读取一个字符串,存入一个动态分配的字符数组中。描述你的程序如何处理变长输入。测试你的程序,输入一个查处你分配的数组长度的字符串
*说明:
*作者:Nick Feng
*邮箱:nickgreen23@163.com
*/
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
cin >> s;
char *cp = new char[10];
for(int i = 0; i != s.length(); ++i)
*( cp + i ) = s[i];
for(int i = 0; i != s.length(); ++i)
cout << *(cp + i);
cout << endl;
delete [] cp;
return 0;
}
练习12.25:给定下面的new表达式,你应该如何释放pa?
int *pa = new int[10]
//释放
delete [] pa;