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

一个小小的题目,出了点有关问题

2012-04-03 
一个小小的题目,出了点问题。//输入一个有十二个字符的字符串,并将其中从第四个字符开始复制到另一个字符中

一个小小的题目,出了点问题。
//输入一个有十二个字符的字符串,并将其中从第四个字符开始复制到另一个字符中去
#include<iostream>
#include<string>
using namespace std;
int main()
{
cout<<"请输入一个有十二个字符的字符串"<<endl;
string str1,str2;
cin>>str1;
int k;
for(k=3;k<=11;k++)
{
str2[k-3]=str1[k];
}
cout<<"原始数据为"<<str1<<endl<<"复制后的数据为"<<str2;
return 0;
}

这个怎么没有用的,请指出错误,最好能帮改一下;

[解决办法]
str2默认是空的。空字符串不能使用下标的,只有在里面有元素时才能用下标,可以这样
#include<iostream>
#include<string>
using namespace std;
int main()
{
 cout<<"请输入一个有十二个字符的字符串"<<endl;
 string str1,str2;
 cin>>str1;
 for(int k=3;k!=12;k++)
 {str2+=str1[k];
 }

 cout<<"原始数据为"<<str1<<endl<<"复制后的数据为"<<str2;
 return 0;
}
运行通过

热点排行