使用String逐个赋值字符
动机
在做毕设,进行数据清洗的过程中,通过使用string来抓取其中的字符串。Bug-1
#include<string>
#include<iostream>
using namespace std;
int main()
{
string a;
string b;
cin>>a;
for(int i=0; i<5; i++ )
cout<<a[i]<<endl;
b[0] = a[0]; //string是不可以像char一样,有a[i]=b[i]这样赋值的
cout<<endl;
cout<<b<<endl;
return 0;
}
- Bug-2
#include<string>
#include<iostream>
using namespace std;
int main()
{
string a;
string b;
int j=1;
cin>>a;
for(int i=0; i<5; i++ )
cout<<a[i]<<endl;
b[0] += a[0];//赋值时注意千万不能用b[0],而应该是b
cout<<endl;
cout<<b<<endl;
b[0] += a[j];
cout<<b<<endl;
return 0;
}
- 下面是正确的方式
#include<string>
#include<iostream>
using namespace std;
int main()
{
string a;
string b;
cin>>a;
for(int i=0; i<5; i++ )
cout<<a[i]<<endl;
b += a[0];//这里既然使用了string,那么赋值的格式就用他本身的+号
cout<<endl;
cout<<b<<endl;
b += a[1];
cout<<b<<endl;
return 0;
}
实验结果如图所示:
- 感悟总结
string的方法需要用+-等特殊的方式,这样所以在使用时要多参考其代码库。
第一次使用博客来记录bug&solution,原来是用word,但觉得不是很美观和方便,尝试用新方法,毕竟markdown是神器,学这一行的一定要用于尝试新东西才可。
- 引用连接