Skocz do zawartości

Konwersja z int na char


Pomocna odpowiedź

Napisano

Witam.

Jak w C mogę przekonwertować wartość int na char ?

int a=0, b=0;
char c[16];

while(1)
	{
	if(PINC==0b11111110)
	{
		a++;
		_delay_ms(5);
	}

	if(a!=b)
	{
		c=itoa(a, c, 10);  //To nie działa i c=(char)a; też nie
		LCD_CLEAR();
		b=a;
		LCD_WriteText(c);\
		while(PINC==0b11111110);
	}

	_delay_ms(5);
	}

Funkcja LCD_Write() wygląda następująco:

void LCD_WriteText(char * text)
{
while(*text)
	 {
 LCD_WriteData(*text++);
 _delay_ms(5);
 }
}

Ale co chcesz zrobić? Jeśli przekonwertować int na char to:

int a;

char b;

b = a;

I to działa, mozna ew.

b= (char)a;

Natomiast jeśli chcesz uzyskać znak w kodowaniu ASCII to:

b = a+48;

lub bezpieczniej:

b = (a%10)+48;

Mateusz chcę przekonwertować int'a na tablicę charów. Możesz skorzystać z funkcji sprintf

Dla przykładu:

char Temp[8];
sprintf(Temp, "%i", Zmienna_int);
LCD_WriteText(Temp);
  • Pomogłeś! 1

A ja z swojej strony polecam:

				
volatile char bufor [17];	
int adr=ADRESS;
itoa(adr,bufor,16);
rs_put_text(bufor);	

jest to wysłanie zmiennej int na RS, w systemie szesnastkowym.

I chyba to jest w bibliotece:

#include <stdlib.h>
  • Pomogłeś! 1
A ja z swojej strony polecam:
				
volatile char bufor [17];	
int adr=ADRESS;
itoa(adr,bufor,16);
rs_put_text(bufor);	

jest to wysłanie zmiennej int na RS, w systemie szesnastkowym.

I chyba to jest w bibliotece:

#include <stdlib.h>

Dzięki, to rozwiązanie jest 3 razy lżejsze i działa równie dobrze. Mój gotowy kod może innym się przyda:

 #include <stdlib.h>

int i=0,;
char temp [16];
itoa(i,temp,10);
LCD_WriteText(temp);

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...