2013-04-14 6 views
6

char 값을 ASCII int 값으로 변환하고 싶습니다.ASCII char를 ASCII int 값으로 변환하는 방법은 무엇입니까?

모든 가능한 값으로 배열을 채울 수 있고 그 값과 비교할 수 있지만 나에게 맞는 것 같지 않습니다. 내가

char mychar = "k" 
public int ASCItranslate(char c) 
return c 

ASCItranslate(k) // >> Should return 107 as that is the ASCII value of 'k'. 

뭔가를하고 싶은 점은 단지 읽을 번호를 그대로 atoi() 여기에 작동하지 않을 것이다.

공백 (ASCII 32)은 사용하지 않습니다.

+0

당신이 시도해 봤어 :

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

가에 ASCII 값 변환하는 ASCII 문자입니다 아무것도? 예를 들어'return c; '와 같이? –

+1

'char mychar = "k"': 오 하늘. 너 이걸 시도해 봤니? ''k ''는 null로 끝나는 문자열이고'char'는 아니다. 또한'C++ '문은 세미콜론으로 끝나야합니다. 확실하게 이걸 알고 있니? – TonyK

답변

2

는이 작업을 수행 : -

char mychar = 'k'; 
public int ASCItranslate(char c) 
return int(c); 

ASCItranslate(k); // >> should return 107 as that is the ascii value of k 
고정 다양한 구문 오류가 원래 코드의
+0

[EBCDIC] (http://en.wikipedia.org/wiki/EBCDIC)을 사용하는 컴퓨터에서는 작동하지 않습니다. 이식성이 필요한 경우, 더 복잡한 것이 필요합니다. –

+1

EBCDIC가 ASCI가 아니므로 EBCDIC가 오래된 시스템은 이전 시스템에서 IBM에서만 사용되었습니다. 나는 이것이 MSX가 ASCI를 가지고 있었음을 기억한다. 그래서 이것은 실제 오래된 것임에 틀림 없다. 그것을 이해하는 Arduino에서 사용한다. – user613326

+0

왜 이것을 upvoted/accept입니까? 심지어 유효한 코드도 아닙니다. –

7

그냥 이렇게 :

int(k) 

당신은 그냥 바로 여기에 int로 함수 호출에 대한 필요를 문자로 변환하지 있습니다.

5

char은 이미 숫자입니다. ASCII는 숫자에서 문자 표현으로의 매핑이기 때문에 변환이 필요하지 않습니다.

원하는 경우 번호로 직접 사용하거나 전송할 수 있습니다.

0

C++에서 static_cast<int>(k)을 사용하여 변환을 명시 적으로 지정할 수도 있습니다.

+1

전송은 항상 명시 적입니다. 캐스트를 사용하면 ** 변환 **이 명확 해집니다. 물론, 거의 모든 경우에 컴파일러는 변환을 수행하고 캐스트는 단순한 노이즈입니다. –

+0

"컴파일러가 아니라 프로그래머에게 명시 적"을 의미했습니다. – Tisys

+0

그럼에도 불구하고 ** 전환 **이 명시되었습니다. ** 캐스트 **는 변환을 수행하도록 컴파일러에 알리기 위해 소스 코드에 작성하는 항목입니다. 캐스트는 ** 항상 ** 명시 적입니다. –

0
#include <iostream> 

char mychar = 'k'; 
int ASCIItranslate(char ch) { 
    return ch; 
} 

int main() { 
    std::cout << ASCIItranslage(mychar); 
    return 0; 
} 

. ASCII를 사용하는 컴파일러 (거의 모든 요즘)를 사용한다고 가정하면 작동합니다. 왜 그게 잘못이라고 생각하니?

0

ASCII 값의에 ASCII 문자 변환하는 방법 :

int a=67; 
    cout<<char(a); 
관련 문제