动态数组:
1).从标准输入读入数据建立一个int型vector对象,然后动态创建一个与该vector对象大小一致的数组,把vector对象的所有元素复制给数组
#include "stdafx.h"
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
cout<<"Enter some numbers(ctrl+z to end): "<<endl;
vector<int> ivec;
int ival;
while(cin>>ival)
ivec.push_back(ival);
if(ivec.size()==0)
{
cout<<"No elements! "<<endl;
return -1;
}
size_t array_size=ivec.size();
int *pia=new int[array_size];
int *q=pia;
for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();++iter,++q)
{
*q=*iter;
delete []pia;
}
cout<<endl;
return 0;
}
2).连接两个C风格字符串字面值,把结果存储在一个C风格字符串中
#include "stdafx.h"
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
const char *cp1="We are";
const char *cp2="good friends";
size_t len=strlen(cp1)+strlen(cp2);
char *result_str=new char[len+1];
strcpy(result_str,cp1);
strcat(result_str,cp2);
cout<<result_str<<endl;
delete []result_str;
return 0;
}
3).连接两个string类型字符串
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
const string str1("We are ");
const string str2("good friends,too");
string result_str;
result_str=str1;
result_str+=str2;
cout<<result_str<<endl;
return 0;
}
4).从标准设备中读入字符串,并把该字符串存放在字符数组中
#include "stdafx.h"
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
int main()
{
string in_str; //用于读入字符串的string对象
const size_t str_size=10;
char result_str[str_size+1];
//读入字符串
cout<<"Enter a string(<="<<str_size<<"characters): "<<endl;
cin>>in_str;
//计算需复制的字符的数目
size_t len=strlen(in_str.c_str());
if(len>str_size)
{
len=str_size;
cout<<"String is longer than "<<str_size
<<"characters and is stored only"
<<str_size<<"characters!"<<endl;
}
//复制len个字符至字符数组result_str
strncpy(result_str,in_str.c_str(),len);
//在末尾加上一个空字符(null空字符)
result_str[len+1]='/0';
cout<<result_str<<endl;
return 0;
}
5).用int型数组初始化vector
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
int main()
{
const size_t array_size=8;
int int_arr[array_size];
//输入数组元素
cout<<"Enter"<<array_size<<" numbers: "<<endl;
for(size_t ix=0;ix!=array_size;++ix)
cin>>int_arr[ix];
//用int型数组初始化vector对象
vector<int> ivec(int_arr,int_arr+array_size);
for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();++iter)
cout<<*iter<<" ";
cout<<endl;
return 0;
}