如何将字符串转换为各自的int值?

时间:2018-04-08 01:44:09

标签: c++ string

我尝试将string个字符转换为ASCII int值。但是我无法在string中为一个角色工作。输入' H'时我会得到72的结果,但它会返回0(对于我尝试过的每个角色都是如此)。

#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <string>

using namespace std;

int main()
{
    string a;

    cin >> a;

    const char * b = a.c_str();

    int c = atoi(b);

    cout << int(c) << endl;
}

提前致谢。

3 个答案:

答案 0 :(得分:1)

atoi解析C字符串,将其内容解释为整数,即

int i = atoi("123"); // i = 123

您不希望这样:您想知道输入字符串的每个字符的ASCII值。要解决这个问题,您可以使用以下代码段:

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string a;
    cin >> a;
    for(int c: a) 
        cout << c << '\n';
}

答案 1 :(得分:0)

我不太熟悉string库,只需键入:

cout<<(int)a[pozition];

你可以把它放在像这样的地方。

for(int i=0;i<a.length();i++)
    cout<<(int)a[i]<<endl;

答案 2 :(得分:0)

您可以将每个字符转换为int

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string a;
    cin >> a;
    for (int i = 0; i < a.length(); i++) {
        cout << (int) a[i] << endl;
    }
}