질문,답변

문자열 변환 관련.

조회 수 171 추천 수 0 2016.12.17 16:14:24

안녕하세요~

지난 번에 이어 또 질문을 드리네요..

너무 기초적인 내용 같은데, 몇 일 동안 헤메고 있네요..ㅠ

내용은 아래와 같습니다.

 

-------------------------------------------------------------------------------------------------------------------

1) 문자열 "ab"가 있습니다.

2) 이 문자열을 16진수로 표현하면 0x6162가 됩니다

3) 0x6162를 그대로 10진수로 변환하고 싶습니다. 답은 '24930' 입니다.

-------------------------------------------------------------------------------------------------------------------

 

시도한 방법은 다음과 같습니다.

----------------------------------------------------------------------------------------------------------------

int result = 0;

int *ptr = 0;

 

char text[3] = "ab"

 

result = atoi(text);  // result = 0.. 변환실패..

result = StrToInt(result, ptr) // result = 0.. 변환실패..

----------------------------------------------------------------------------------------------------------------

 

고수님들은 이럴 때 어떻게 하시나요... 조언 좀 부탁드리겠습니다!

Labview에서는 Typecast 함수 써서 정말 간단하게 했는데..

CVI는 도통 모르겠습니다..ㅠㅠ

 

 

 


요돌이

2016.12.17 18:45:27
*.62.72.33

와우!! 해결했습니다~~! 아래 코드 올려드립니다. 더 좋은 방법 있으신 고수님 조언 부탁드려요~~!

 

=============================================================================

 char text[3] = {0};
 char y[9] = {0};
 char x[9] = {0};
 
 int a = 0;
 int b = 0;
 int c = 0;
 int forth = 0;
 int third = 0;
 int second = 0;
 int first = 0;

   SetCtrlVal(PANEL, PANEL_STRING, "ab");
   GetCtrlVal(PANEL, PANEL_STRING, text);
   SetCtrlVal(PANEL, PANEL_cnInputStr, text);
   
   sprintf(x, "%x", text[0]);
   sprintf(y, "%x", text[1]);
   strcat(x,y);
   a = atoi(x);
   
   SetCtrlVal(PANEL, PANEL_STRING, x); 
   SetCtrlVal(PANEL, PANEL_cnNumDisInt1, a);
   
   forth = a / 1000;
   third = (a - forth * 1000 ) / 100;
   second =(a - forth * 1000 - third * 100 ) / 10;              
   first = (a - forth * 1000 - third * 100 - second * 10);
   
   SetCtrlVal(PANEL, PANEL_NUMERIC, forth);
   SetCtrlVal(PANEL, PANEL_NUMERIC_2, third);
   SetCtrlVal(PANEL, PANEL_NUMERIC_3, second);
   SetCtrlVal(PANEL, PANEL_NUMERIC_4, first);
   
   b =  forth * pow(16,3) + third * pow(16,2) +  second * pow(16,1) + first * pow(16,0);
   SetCtrlVal(PANEL, PANEL_cnNumDisInt1, b);

=================================================================================

야리싸내

2016.12.18 12:31:08
*.160.130.133

안녕하세요 야리싸내입니다.

 

이렇게 해보세요

 

위에서 부터 쭉 내려와서..

sprintf(y,"%x%x",text[0],text[1]);//a와 b를 한꺼번에 y에 넣고요..y=6162가 됩니다.

Scan (y, "%s>%x", &b);//y의 6162 십육진수 문자를 숫자로 해서 b=24930이 됩니다.

 

그럼..

 

요돌이

2016.12.19 11:48:39
*.62.178.145

오오~ 역시 간단하게 정리 할 수 있는 방법이 있었군요!

감사합니다~!

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 파일(특히 그림파일)을 올리실 때의 유의사항 운영자 2004-07-16 98994
1597 'Error Code -94' 해결방법이... [2] 요돌이 2017-10-10 114
1596 cvi 에서 cmd창 없애는 방법 [2] 김승준 2017-09-11 153
1595 시리얼 통신 crc, checksum 계산기 file 하이루 2017-09-04 1025
1594 USB 연결되었을때 어떻게 확인하나요? file [1] 루키니아 2017-07-03 185
1593 외부 장치 검색하는 함수 조커 2017-02-20 135
1592 탭(tab)페이지 관련 질문드립니다. [2] cvi초보! 2017-01-26 137
» 문자열 변환 관련. [3] 요돌이 2016-12-17 171
1590 폴더내의 파일 탐색 명령어 [2] 조커 2016-12-14 85
1589 안녕하세요 이미지 캡처 관련 질문드립니다. [5] cvi초보! 2016-12-02 148
1588 UIR 멈춤현상 관련. [1] 요돌이 2016-11-28 101
1587 win10에서 실행종료시...FATAL RUN-TIME ERROR file [6] 루키니아 2016-08-31 645
1586 패널 자체를 배열선언이 가능할까요??? (조언급구) file [2] 레몬자몽 2016-08-23 290
1585 vison 관련 문의 입니다. ds4okv 2016-08-20 75
1584 Excel 병합에 관한건데요... [2] 루키니아 2016-08-18 174
1583 전처리기(Preprocessor)를 이용해서 컨트롤을 숨길 수 있나요? [2] 레몬자몽 2016-08-09 136
1582 FileSelectPopup의 오류가.... [4] 야리싸내 2016-08-04 130
1581 2차원배열 때문에 미치겠습니다 ㅠㅠ [5] 쥐샥 2016-08-03 141
1580 정수와 실수의 구분에 대해 질문드립니다 [2] 워나리 2016-07-26 748
1579 Numeric Control에 double타입일 경우 a와 f가 입력이 되는 현상 file [2] 레몬자몽 2016-07-22 575
1578 테이블컨트롤(Table Control) Insert시 역순으로 넣을 수 있는지 여부 [2] 레몬자몽 2016-07-19 663