C++ 这里有一些字符串问题

C++ 这里有一些字符串问题,c++,string,codeblocks,C++,String,Codeblocks,我正在做一个蒸汽机器人。我需要得到一个变量中字符串的每个字符,我尝试使用向量,但没有成功。从字符串“abc”我得到向量:979899。我不明白那里出了什么问题 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<&l

我正在做一个蒸汽机器人。我需要得到一个变量中字符串的每个字符,我尝试使用向量,但没有成功。从字符串“abc”我得到向量:979899。我不明白那里出了什么问题

    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;
}
intv[100],j=0;未签名的i;
字符串str;cin>>str;

对于(i=0;i将
int v[100]
更改为
char v[100]
int v[100]
更改为
char v[100]

97、98和99是ASCII字符集中字符
'a'
'b'
'c'
的数值。因此,将它们转换为
int
,这是代码将它们的值存储到
int
数组中所做的操作,除非主机系统在一个不兼容的字符集。

97、98和99是ASCII字符集中字符
'a'
'b'
'c'
的数值。因此,将它们转换为
int
,这是代码将它们的值存储到
int
数组中时所做的操作,将给出这些值,除非y我们的主机系统使用不兼容的字符集运行。

这是因为您将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;
}
charv[100];
int j=0;
未签名的i;
字符串str;
cin>>str;

对于(i=0;i,这是因为您将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;
}
charv[100];
int j=0;
未签名的i;
字符串str;
cin>>str;

对于(i=0;i请用编写代码的语言标记您的问题当“a”被转换为int时,它是97。这是您不理解/想要的吗?为什么要将字符存储为int?而不是
int v[100],j=0;
可能您想要
char v[100];int j=0;
或者,在打印之前,您可能想将其转换回字符
cout请使用编写代码的语言标记您的问题当“a”转换为int时,它是97。这是您不理解/想要的吗?为什么要将字符存储为int?而不是
int v[100],j=0;
也许你想要
char v[100];int j=0;
或者,也许你想在打印
coutOups之前将其转换回char。这对我来说是愚蠢的,我的错。谢谢。对我来说是愚蠢的,我的错。谢谢。