有些字符串问题

时间:2015-11-07 11:56:42

标签: c++ string codeblocks

我正在为蒸汽提供制作机器人。我需要在变量中获取字符串的每个字符,我尝试使用向量但它不起作用。从字符串“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;
}

我是所有这一切的新手,所以,请帮助我一点。我在这做错了什么?

3 个答案:

答案 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;
}