//为了方便,要包含的文件会不同,但我没有删
#include <iostream>
#include <string>
#include <vector>
#include <bitset>
#include <cstring> //和C语言的string.h其实是一个版本
using std::bitset;
using std::vector;
using std::cin;
using std::endl;
using std::cout;
using std::string;
//---------------------------------------------------------------------------
int main()
{
//从输入设备读入C风格字符串,这里采用了先以vector存字符,然后跟据字符多少动态建一个char[]数组;
//在这里面要特别注意指针的引用方法,例如里面的str,把它设为const型,这样可以保证str1所指的永远是第一个字符,所以为了遍历字符串组,又用了
//指针str1,在for循环中,str1最后已经指到了字符串组的最后一个位置,这时如再加1,就会出现字符串组大小不够的问题,所以在最后加上空字符正好
vector<char> vc;
char c='0';
while(cin>>c)
vc.push_back(c);
size_t s=vc.size ();
char *const str=new char [s+1];
char *str1=str;
for(vector<char>::iterator ite=vc.begin ();ite!=vc.end ();++ite,++str1)
*str1=*ite;
*str1='/0';
//-------------------------------------------------------------
//输出结果
cout<<"输入C风格字符串为:";
for(char *p=str;*p!='/0';++p)
cout<<*p<<' ';
cout<<endl;
//------------------------------释放new分配的空间
delete [] str;
return 0;
}
/*
117页习题4.26,从标准输入读入C风格字符串
*/