[C] Konvertera int (ascii-kod) till char

Permalänk
Medlem

[C] Konvertera int (ascii-kod) till char

Mors!

Jag har ett problem som egentligen torde vara ganska simpelt, men visst inte. Jag har sökt och sökt, men problemet återstår.

Det jag vill göra är att konvertera en int till char, där int:en är en ascii-kod.

int foo = 65;
char tecken;
...
printf("%s", tecken);

Output: A

Jag har provat med sprintf, casting etc, men inget har fungerat. Jag har antingen fått ut "65" eller "Segmentation fault". Någon som kan reda ut för mig hur jag går tillväga?

Visa signatur

It is one thing to describe an interview with a gorgon or a griffin, a creature who does not exist.
It is another thing to discover that the rhinoceros does exist, and then take pleasure in the fact that he looks as if he didn't.
- G.K. Chesterton

Permalänk
Medlem

Använd atoi() ligger i stdlib.h
tex.

char *ch = "123";
int i = atoi(ch);

Output: 123

Visa signatur

Linux är inget operativsystem.
http://www.gnu.org/gnu/linux-and-gnu.html

Permalänk
Medlem

Joon: Int till char, inte char till int.
Decamber: Hur har du inte lyckats? Heh. Ifall du har variabeln x (int) och sätter den till 97, skriver ut %c med printf() så får du ett litet a. Principen är i andra hållet att du tar bort resterande positioner i teckentabellen.

EDIT: Allvarligt talat, röker jag? Du får gärna förklara igen ifall du vill, ty du lyckas ju?

Visa signatur

http://www.catb.org/~esr/faqs/smart-questions.html
"Tot kto samoiltushi infarmator tot kto sam ne ponjal sto on rasskasoval"

Permalänk
Medlem

Förstår inte exakt vad du vill göra men kanske är nått sånt här ?

int t = 65; char c = (char)t; printf("%c", c);

Fast o andra sidan verkar det som du vill jobba med strängar (char arrays: char foo[] = "test"; )
Försök förklara lite mer vad du försöker göra så ska vi försöka hjälpa dig

Visa signatur

"Anyone who puts a small gloss on a fundamental technology, calls it proprietary, and then tries to keep others from building on it, is a thief."
-Tim O'Reilly "http://iiice.net/~ice/stuff/secret_msg.wav" - who?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Raiche
Allvarligt talat, röker jag?

Precis det frågar jag mig själv nu.
Felet jag gjort var att skriva %s istället för %c i printf(). Då är det inte undra på att jag får "Segmentation fault".
Så här ser koden ut, ni som undrade vad jag menade:

#include <stdio.h> int main(int argc, char **argv) { int a = 65; char b = (char)a; printf("%c\n", b); return 0; }

Observera dock att detta är "test.c"; det riktiga programmet jag skriver använder bara samma konvertering.

Tack för hjälpen.

Visa signatur

It is one thing to describe an interview with a gorgon or a griffin, a creature who does not exist.
It is another thing to discover that the rhinoceros does exist, and then take pleasure in the fact that he looks as if he didn't.
- G.K. Chesterton

Permalänk
Medlem

Varför includar du iostream.h och använder printf?

C++:

#include <iostream> int main() { int A = 65; std::cout << (char)A << std::endl; return 0; }

Visa signatur

Perl - Made by Idiots, Java - Made for Idiots, C++ - Envied by Idiots

Permalänk
Medlem

December: Du behöver inte någon char i huvudtaget, printf("%c", int i = 97)

Visa signatur

http://www.catb.org/~esr/faqs/smart-questions.html
"Tot kto samoiltushi infarmator tot kto sam ne ponjal sto on rasskasoval"

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Sunray
Varför includar du iostream.h och använder printf? :confused:[/code]

Whoops, litet typo av gammal vana.

Citat:

Ursprungligen inskrivet av Raiche
December: Du behöver inte någon char i huvudtaget, printf("%c", int i = 97)

Nej just ja, typomvandligen sker implicit och automatiskt av kompilatorn.

Och inte December - Decamber.

Visa signatur

It is one thing to describe an interview with a gorgon or a griffin, a creature who does not exist.
It is another thing to discover that the rhinoceros does exist, and then take pleasure in the fact that he looks as if he didn't.
- G.K. Chesterton