UFO ET IT

int를 ASCII 문자로 변환

ufoet 2020. 12. 13. 10:00
반응형

int를 ASCII 문자로 변환


나는 가지고있다

int i = 6;

그리고 나는 원한다

char c = '6'

변환에 의해. 제안하는 간단한 방법이 있습니까?

편집 : 또한 난수를 생성하고 문자로 변환 한 다음 '.txt'를 추가하고 ifstream에서 액세스해야합니다.


간단한 방법 :

char digits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
char aChar = digits[i];

더 안전한 방법 :

char aChar = '0' + i;

일반적인 방법 :

itoa(i, ...)

편리한 방법 :

sprintf(myString, "%d", i)

C ++ 방식 : (Dave18 답변에서 가져옴)

std::ostringstream oss;
oss << 6;

보스 방법 :

Joe, int to char 변환기 작성

Studboss 방법 :

char aChar = '6';

조의 방법 :

char aChar = '6'; // int i = 6;

Nasa의 방법 :

// 위성에서 응답을 기다리는 중 ...

외계인의 길 : '9'

//인사말.

하나님의 방법 :

Bruh 나는 이것을 만들었다

Peter Pan의 방법 :

char aChar;

switch (i)
{
  case 0:
    aChar = '0';
    break;
  case 1:
    aChar = '1';
    break;
  case 2:
    aChar = '2';
    break;
  case 3:
    aChar = '3';
    break;
  case 4:
    aChar = '4';
    break;
  case 5:
    aChar = '5';
    break;
  case 6:
    aChar = '6';
    break;
  case 7:
    aChar = '7';
    break;
  case 8:
    aChar = '8';
    break;
  case 9:
    aChar = '9';
    break;
  default:
    aChar = '?';
    break;
}

산타 클로스의 방법 :

//Wait till Christmas!
sleep(457347347);

중력의 방식 :

//뭐

'6'(저지) Mikes '™ 방식 :

//

그래서 방법 :

여러분, C ++ 초보자 가이드를 어떻게 읽지 않습니까?

내 방식 :

또는 고속도로.

댓글 : Handy way와 C ++ way (완전한 컬렉션을 갖기 위해)를 추가했고 이것을 위키로 저장하고 있습니다.

편집 : 만족?


이것은 정수 0-9에서만 작동하지만 귀하의 질문은 충분할 수 있음을 시사하는 것 같습니다.

char의 ASCII 값을 '0'정수 자리 에 추가하여 작동합니다 .

int i=6;
char c = '0'+i;  // now c is '6'

예를 들면 :

'0'+0 = '0'
'0'+1 = '1'
'0'+2 = '2'
'0'+3 = '3'

편집하다

"알파벳 작업"이란 무슨 뜻인지 명확하지 않습니까? 알파벳의 다섯 번째 글자를 원하는 경우 :

int i=5;
char c = 'A'-1 + i; // c is now 'E', the 5th letter.

C / Ascii에서 A는 알파벳 0 번째 문자간주되기 때문에 일반적으로 이해되는 5 번째 문자의 의미를 보완하기 위해 마이너스 -1을 수행합니다.

특정 상황에 맞게 조정하십시오.
(그리고 테스트 테스트 테스트! 작성한 모든 코드)


참고로 한 자리 이상의 숫자를 원하면 sprintf를 사용할 수 있습니다.

char txt[16];
int myNum = 20;
sprintf(txt, "%d", myNum);

그런 다음 첫 번째 숫자는 txt [0]의 문자에 있습니다.

(이것은 C ++ 방식이 아니라 C 방식입니다. C ++ 방식은 stringstream을 사용하는 것입니다.)


이 작업을 수행하는 방법은 다음과 같습니다.

    char to int
    char var;
    cout<<(int)var-48;

    int to char
    int var;
    cout<<(char)(var|48);

그리고 나는 변환을 위해 이러한 함수를 작성합니다.

int char2int(char *szBroj){
    int counter=0;
    int results=0;
    while(1){
        if(szBroj[counter]=='\0'){
            break;
        }else{
            results*=10;
            results+=(int)szBroj[counter]-48;
            counter++;
        }
    }
    return results;

}

char * int2char(int iNumber){
    int iNumbersCount=0;
    int iTmpNum=iNumber;
    while(iTmpNum){
        iTmpNum/=10;
        iNumbersCount++;
    }
    char *buffer=new char[iNumbersCount+1];
    for(int i=iNumbersCount-1;i>=0;i--){
        buffer[i]=(char)((iNumber%10)|48);
        iNumber/=10;
    }
    buffer[iNumbersCount]='\0';
    return buffer;

}

itoa ()

http://www.cplusplus.com/reference/clibrary/cstdlib/itoa/


이것이 제가 숫자를 ASCII 코드로 변환 한 방법입니다. 16 진수 코드에서 0이지만 9는 0x30-0x39입니다. 6은 0x36입니다.

unsigned int temp = 6;
or you can use unsigned char temp = 6;
unsigned char num;
 num = 0x30| temp;

그러면 6에 대한 ASCII 값이 제공됩니다. 0-9에 대해서도 동일하게 수행합니다.

ASCII를 숫자 값으로 변환하기 위해이 코드를 생각해 냈습니다.

unsigned char num,code;
code = 0x39; // ASCII Code for 9 in Hex
num = 0&0F & code;

"나는 int i = 6이고, 변환으로 char c = '6'을 원합니다. 제안하는 간단한 방법이 있습니까?"

숫자는 10 개뿐입니다. 따라서 0-9에서 int를 취하고 ascii 코드를 반환하는 함수를 작성하십시오. ascii 테이블에서 찾아보고 ifs 또는 select case로 함수를 작성하십시오.


대체 방법이지만 비표준입니다.

int i = 6;
char c[2];
char *str = NULL;
if (_itoa_s(i, c, 2, 10) == 0)
   str = c;

또는 표준 C ++ stringstream 사용

 std::ostringstream oss;
 oss << 6;

나는 생각한다

std::to_string(i)

일을 할 수 있고, 오버로드 된 함수이고, 어떤 숫자 유형도 될 수 있습니다.


          A PROGRAM TO CONVERT INT INTO ASCII.




          #include<stdio.h>
          #include<string.h>
          #include<conio.h>

           char data[1000]= {' '};           /*thing in the bracket is optional*/
           char data1[1000]={' '};
           int val, a;
           char varray [9];

           void binary (int digit)
          {
              if(digit==0)
               val=48;
              if(digit==1)
               val=49;
              if(digit==2)
               val=50;
              if(digit==3)
               val=51;
              if(digit==4)
               val=52;
              if(digit==5)
               val=53;
              if(digit==6)
               val=54;
              if(digit==7)
               val=55;
              if(digit==8)
               val=56;
              if(digit==9)
                val=57;
                a=0;

           while(val!=0)
           {
              if(val%2==0)
               {
                varray[a]= '0';
               }

               else
               varray[a]='1';
               val=val/2;
               a++;
           }


           while(a!=7)
          {
            varray[a]='0';
            a++;
           }


          varray [8] = NULL;
          strrev (varray);
          strcpy (data1,varray);
          strcat (data1,data);
          strcpy (data,data1);

         }


          void main()
         {
           int num;
           clrscr();
           printf("enter number\n");
           scanf("%d",&num);
           if(num==0)
           binary(0);
           else
           while(num>0)
           {
           binary(num%10);
           num=num/10;
           }
           puts(data);
           getch();

           }

내 코딩과 잘 작동하는지 확인하고 도움이되는지 알려주세요. 감사합니다.

참고 URL : https://stackoverflow.com/questions/4629050/convert-an-int-to-ascii-character

반응형