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.