У меня
int i = 6;
и я хочу
char c = '6'
путем преобразования. Любой простой способ предложить?
EDIT: также мне нужно сгенерировать случайное число и преобразовать в char, затем добавить '.txt' и получить к нему доступ в ifstream.
У меня
int i = 6;
и я хочу
char c = '6'
путем преобразования. Любой простой способ предложить?
EDIT: также мне нужно сгенерировать случайное число и преобразовать в char, затем добавить '.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)
С++ способ: (взято из ответа Dave18)
std::ostringstream oss;
oss << 6;
Босс:
Джо, напишите мне int в char converter
Путь к Studboss:
char aChar = '6';
Способ Джо:
char aChar = '6';//int я = 6;
Способ Nasa:
//Ожидание ответа со спутника...
Чужой путь: '9'
//Приветствия.
Бог способ:
Брух я построил это
Питер Пэн:
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 '™ способ:
//
SO способ:
Ребята, как мне избежать чтения руководство для начинающих на С++?
Мой способ:
или шоссе.
Комментарий: я добавил Handy way и С++ (чтобы иметь полную коллекцию), и я сохраняю это как вики.
Изменить: выполнено?
Это будет работать только для чисел с цифрами 0-9, но ваш вопрос, похоже, предполагает, что этого может быть достаточно.
Он работает, добавляя значение ASCII char '0'
к целочисленной цифре.
int i=6;
char c = '0'+i; // now c is '6'
Например:
'0'+0 = '0'
'0'+1 = '1'
'0'+2 = '2'
'0'+3 = '3'
Изменить
Неясно, что вы имеете в виду, "работайте над алфавитами"? Если вы хотите 5-ю букву алфавита:
int i=5;
char c = 'A'-1 + i; // c is now 'E', the 5th letter.
Заметим, что, поскольку в C/Ascii A считается 0-й буквой алфавита, я делаю минус-1, чтобы компенсировать нормально понятое значение 5-й буквы.
Отрегулируйте в зависимости от конкретной ситуации.
(и тест-тест-тест! любой код, который вы пишете)
Просто FYI, если вы хотите больше, чем однозначные числа, вы можете использовать sprintf:
char txt[16];
int myNum = 20;
sprintf(txt, "%d", myNum);
Тогда первая цифра находится в char в txt [0] и т.д.
(Это подход C, а не С++-подход. С++-способом было бы использовать строковые потоки.)
Мой способ выполнить эту работу:
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()
Вот как я преобразовал число в код ASCII. 0, хотя 9 в шестнадцатеричном коде 0x30-0x39. 6 будет 0x36.
unsigned int temp = 6;
or you can use unsigned char temp = 6;
unsigned char num;
num = 0x30| temp;
это даст вам значение ASCII для 6. Вы делаете то же самое для 0 - 9
чтобы преобразовать ASCII в числовое значение, я придумал этот код.
unsigned char num,code;
code = 0x39; // ASCII Code for 9 in Hex
num = 0&0F & code;
Альтернативный способ, но нестандартный.
int i = 6;
char c[2];
char *str = NULL;
if (_itoa_s(i, c, 2, 10) == 0)
str = c;
Или используя стандартный С++ stringstream
std::ostringstream oss;
oss << 6;
"У меня есть int я = 6, и я хочу char c = '6' путем преобразования. Любой простой способ предложить?"
Есть только 10 номеров. Поэтому напишите функцию, которая принимает int от 0-9 и возвращает код ascii. Просто просмотрите его в таблице ascii и напишите функцию с ifs или select case.
Я полагаю, что
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();
}
Я проверяю свою кодировку и ее работу good.let мне знать, если ее helpful.thanks.