2016-10-21 2 views
1

여기에 문자열 값 21을 저장하는 char 유형 변수가 있습니다. 정수 변수 21에 21을 할당하고 싶습니다. 다음 일을하지만 인쇄 -12.why 인쇄 -12 및 내 int 변수에 21 얻을 수 있습니까?char 변수에서 숫자 문자열을 가져 와서 정수 변수에 다시 할당하십시오.

#include<stdio.h> 

int main(){ 
char character = "21"; 
int x = (int)character - '0'; 
printf("%d",x); 
} 
+1

'char character = "21";'을 넣는 것은 유효하지 않은 코드입니다. 데이터는 char * [char] [21];' –

+1

'과 같은'char' 배열에 할당되어야하는 문자열 리터럴 *입니다. 또한'char * character = "21";'이 유효한 대안입니다. – byxor

+0

'int x = (int) character - '0';'이 코드는 작동하지만,'char character = '7';' –

답변

3

"sscanf"를 사용하십시오.

int main(){ 
char *character = "21"; 
int x = 0; 

sscanf(character, "%d", &x); 
printf("%d",x); 
} 
0

정수로 문자열을 변환하는 적절한 방법은 atoi() 또는 sscanf() 기능을 사용하는 것입니다.

관련 문제