我正在为蒸汽提供制作机器人。我需要在变量中获取字符串的每个字符,我尝试使用向量但它不起作用。从字符串“abc”我得到了矢量:97 98 99.我不明白那里有什么问题..
int v[100], j=0; unsigned i;
string str; cin>>str;
for (i=0; i<str.length(); ++i)
{
v[i]=str.at(i);
cout<<str.at(i)<<endl;
cout<<v[i]<<endl;
}
我是所有这一切的新手,所以,请帮助我一点。我在这做错了什么?
答案 0 :(得分:4)
97,98和99是ASCII字符集中字符'a'
,'b'
和'c'
的数值。因此,将它们转换为int
,这是您的代码为了将其值存储到int
数组中所执行的操作,将提供这些值,除非您的主机系统使用不兼容的字符集进行操作。
答案 1 :(得分:3)
将int v[100]
更改为char v[100]
答案 2 :(得分:0)
那是因为您将v声明为int,将其声明为char
char v[100];
int j=0;
unsigned i;
string str;
cin>>str;
for (i=0; i<str.length(); ++i)
{
v[i]=str.at(i);
cout<<str.at(i)<<endl;
cout<<v[i]<<endl;
}