Hoe een ASCII-char om te zetten naar de ASCII INT-waarde?

Ik wil een char omzetten naar zijn ascii int waarde.

Ik zou een array kunnen vullen met alle mogelijke waarden en daarmee vergelijken, maar het lijkt mij niet goed. Ik zou graag zien als

char mychar = "k"
public int ASCItranslate(char c)
return c   
ASCItranslate(k) // >> Should return 107 as that is the ASCII value of 'k'.

Het punt is atoi()Werkt hier niet zoals alleen voor leesbare nummers.

Het zal niets doen met spaties (ASCII 32).


Antwoord 1

doe dit: –

char mychar = 'k';
//and then
int k = (int)mychar;

Antwoord 2, Autoriteit 2000%

doe dit gewoon:

int(k)

U converteert gewoon de char naar een INT direct hier, geen behoefte aan een functie-oproep.


Antwoord 3, Autoriteit 700%

A charis al een getal. Het vereist geen conversie omdat de ASCII slechts een kaartje van nummers naar karakterrepresentatie is.

U kunt het rechtstreeks gebruiken als een getal als u dat wenst, of cast het.


Antwoord 4, Autoriteit 200%

In C++ kunt u ook static_cast<int>(k)gebruiken om de conversie expliciet te maken.


Antwoord 5

#include <iostream>
char mychar = 'k';
int ASCIItranslate(char ch) {
    return ch;
}
int main() {
    std::cout << ASCIItranslage(mychar);
    return 0;
}

Dat is uw originele code met de verschillende syntaxisfouten gefixeerd. Ervan uitgaande dat u een compiler gebruikt die ASCII gebruikt (die deze dagen vrijwel elke persoon is), werkt het. Waarom denk je dat het verkeerd is?


Antwoord 6

Om te converteren van een ASCII-teken naar het is ASCII-waarde :

 char c='A';
    cout<<int(c);

Om te converteren van een ASCII-waarde naar het is ASCII-teken :

int a=67;
  cout<<char(a);

Other episodes