概述
4.26 编写程序从标准输入设备读入一个string类型的字符串。考虑如何编程实现从标准输入设备读入一个C风格字符串。
int main()
{
cout << "C++ style" << endl;
string str;
cin >> str;
cout << str << endl;
cout << "C style" << endl;
char ch[10];
char *p = ch;
while (p != ch + 10){
cin >> *p++;
}
for (int i = 0; i < sizeof(ch) / sizeof(char); ++i)
cout << ch[i] << endl;
}
4.28 编写程序从标准输入设备读入的元素数据建立一个int型的vector对象,然后动态创建一个与该vector对象大小一致的数组,把vector对象的所有元素赋值给新数组。
int main()
{
vector<int> vec;
int a;
while (cin>>a){
vec.push_back(a);
}
const int n = vec.size();
int *p = new int[n];
int i = 0;
for (vector<int>::iterator iter = vec.begin(); iter != vec.end(); ++iter, ++i){
p[i] = *iter;
cout << p[i] << endl;
}
delete[] p;
return 0;
}
4.30 编写程序连接两个C风格字符串字面值,把结果存储在一个C风格字符串中。然后再编写程序连接两个string类型字符串,这两个string类型字符串与前面的C风格字符串字面值有相同的内容。
int main()
{
const char *pc1 = "hello";
const char *pc2 = "world";
char *pc = new char[strlen(pc1) + strlen(pc2) + 1];
char *pd = pc;
while (*pc1)
{
*pc = *pc1;
++pc;
++pc1;
}
while (*pc2)
{
*pc = *pc2;
++pc;
++pc2;
}
*pc = '