array c++ c ascii

int to char array c++



Convierte un carácter int a ASCII (10)

yo tengo

int i = 6;

y yo quiero

char c = ''6''

por conversión. ¿Alguna manera simple de sugerir?

EDITAR: también necesito generar un número al azar, y convertir a un char, luego agregar un ''.txt'' y acceder a él en un ifstream.


"Tengo int i = 6; y quiero char c = ''6'' por conversión. ¿Alguna forma sencilla de sugerir?"

Solo hay 10 números. Así que escribe una función que toma un int de 0-9 y devuelve el código ascii. Solo búsquelo en una tabla ascii y escriba una función con ifs o un caso seleccionado.


Así es como convertí un número a un código ASCII. 0 a 9 en código hexadecimal es 0x30-0x39. 6 sería 0x36.

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

esto le dará el valor ASCII para 6. Usted hace lo mismo para 0 - 9

para convertir ASCII a un valor numérico, se me ocurrió este código.

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


Esto solo funcionará para dígitos enteros 0-9, pero su pregunta parece sugerir que podría ser suficiente.

Funciona agregando el valor ASCII de char ''0'' al dígito entero.

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

Por ejemplo:

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

Editar

No está claro a qué te refieres con "trabajar para alfabetos"? Si quieres la quinta letra del alfabeto:

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

Tenga en cuenta que, dado que en C / Ascii, A se considera la letra 0 del alfabeto, hago un menos-1 para compensar el significado normalmente comprendido de la quinta letra.

Ajústelo según corresponda para su situación específica.
(y prueba-prueba-prueba! cualquier código que escriba)


Manera alternativa, pero no estándar.

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

O utilizando cadenas de caracteres estándar de c ++

std::ostringstream oss; oss << 6;


Mi forma de hacer este trabajo es:

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

Y escribo estas funciones para las conversiones

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; }


Solo para tu información, si quieres más de un dígito, puedes usar sprintf:

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

Luego, el primer dígito está en char en txt [0], y así sucesivamente.

(Este es el enfoque C, no el enfoque C ++. La forma C ++ sería usar cadenas de caracteres).


Supongo que

std::to_string(i)

podría hacer el trabajo, es una función sobrecargada, podría ser cualquier tipo numérico



De manera directa:

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

Manera más segura:

char aChar = ''0'' + i;

Manera genérica:

itoa(i, ...)

Manera práctica:

sprintf(myString, "%d", i)

C ++ vía: (tomado de Dave18 respuesta)

std::ostringstream oss; oss << 6;

Manera de Boss:

Joe, escríbeme un int a char convertidor

Camino Studboss:

char aChar = ''6'';

La manera de Joe:

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

La forma de la NASA:

// Esperando respuesta del satélite ...

La manera de Alien: ''9''

//Saludos.

La manera de Dios:

Bruh construí esto

La forma de 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; }

La manera de Papá Noel:

//Wait till Christmas! sleep(457347347);

La gravedad:

//Qué

''6'' (Jersey) Mikes ''™ manera:

//

TAN manera:

Chicos, ¿cómo evito leer la guía para principiantes de C ++?

Mi manera:

o la carretera.

Comentario: He añadido Handy way y C ++ way (para tener una colección completa) y estoy guardando esto como una wiki.

Editar: ¿satisfecho?


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(); }

Compruebo mi codificación y funciona bien. Hágame saber si es útil. Gracias.