首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于string的疑点

2013-04-21 
关于string的疑问刚开始学C++,望大家不吝赐教#includeiostream#includestring#includecctypeusing s

关于string的疑问
刚开始学C++,望大家不吝赐教

#include<iostream>
#include<string>
#include<cctype>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
{
string s1("asdfasf,fas.sd"),s2;
string::size_type a,b;
b=0;
for(a=0;a<s1.size();a++)
{
if(!ispunct(s1[a]))
s2[b++]=s1[a];//这个地方为什么会有问题??谢谢
}
cout<<s2<<endl;
return 0;
}

写成下面就没问题,有什么不同,谢谢。
#include<iostream>
#include<string>
#include<cctype>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
{
string s1("asdfasf,fas.sd");
char s2[100];
string::size_type a,b;
b=0;
for(a=0;a<s1.size();a++)
{
if(!ispunct(s1[a]))
s2[b++]=s1[a];
}
s2[b]=0;
cout<<s2<<endl;
return 0;
}

[解决办法]
s2.resize(s1.size());  // s2先撑一下空间

热点排行