Hallo.
Ich habe gestern Abend/Nacht damit zugebracht in lite-C einen Character, welcher in einem Interger gespeichert ist in einen String umzuwandeln,
um ihn so mit 'str_cat' an einen anderen String anzuhängen. (Es ist sichergestellt das der Wert des Intergers nicht kleiner als 0 oder größer als 255 wird)
Ich bin beinahe an dieser einfachen Aufgabe verzweifelt, da es zu unterschiedlichen Ergebnissen kam, obwohl ich nur eine Ausgabe per 'printf' hinzugefügt habe.
Hier ist das Problem, das ich nicht verstehe:
Code:
#include <acknex.h>
#include <default.c>

function main()
{
    int asciiCode = 65; // entspricht 'A'
    STRING* asciiChar = "";
    
    asciiChar = str_create((char)asciiCode);
    
    printf(_chr(asciiChar));
//  printf((char)asciiCode);
//  printf(_chr(str_for_num(NULL,asciiCode)));
   
    return;  
}


Ausgabe: Aý
Jetzt lasse ich NACH dieser Ausgabe noch den Interger, als Character ausgeben:
Code:
printf(_chr(asciiChar));
printf((char)asciiCode);
//printf(_chr(str_for_num(NULL,asciiCode)));


Ausgabe: A, A
Jetzt wird danach noch der Interger aus Character ausgeben. Diesemal wird er erst zu einem String konvertiert und dann zu einem Character-Array.
Code:
printf(_chr(asciiChar));
printf((char)asciiCode);
printf(_chr(str_for_num(NULL,asciiCode)));


Ausgabe: AI'wtý, A, 65

Wenn man noch andere Ausgaben hinzufügt ändern sich die Werte ständig, obwohl der restliche Quellcode nicht verändert wird. Wie kommt das ?

Vielen Dank im Voraus. laugh

Last edited by Nicros; 06/26/15 13:43.