PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : char zu string


BodyLove
2008-06-09, 12:27:48
hey,

ich versuche gerade diesen Caesar-Verschlüsselung zu knacken. Habe auch dementsprechend etwas aufgebaut. Jetzt muss ich aber ein Char in ein String umwandeln und habe damit probleme.

strcpy funktioniert schonmal nicht. Das Casten hat auch nicht funktioniert. Was kann man machen?

Vielen dank.

Gast
2008-06-09, 12:35:39
Ein string ist in C ein char array das am Ende zur Terminierung NUL hat (also \000)
Wenn du es mit sprintf o.ä ausgeben willst kannst auch einfach %c statt %s nehmen.

instinct
2008-06-09, 13:10:42
char c;
c = 'a';
char *string;
strcpy(string,&c);

Kann es gerade nicht testen, aber sollte funktionieren. strcpy erwartet als zweiten Parameter ein Pointer auf eine Zeichenkette, also kannste einfach die SpeicherAdresse des char's übergeben.

Gast
2008-06-09, 13:39:15
char c;
c = 'a';
char *string;
strcpy(string,&c);

Kann es gerade nicht testen, aber sollte funktionieren. strcpy erwartet als zweiten Parameter ein Pointer auf eine Zeichenkette, also kannste einfach die SpeicherAdresse des char's übergeben.

Das kann nicht funktieren weil string auf zufälligen RAM zeigt und nicht extra alloziert wurde und weil wie gesagt strings in C NUL terminiert sind und somit strcpy() eine zufällige Anzahl an Bytes nach string kopiert und eben nicht nur den einen char.

Gast
2008-06-09, 13:43:17
Man kann bei (s)printf wie gesagt einfach %c statt %s nutzen.
Wenn man aber unbedingt einen char in einem string haben will dann so:

char string[2];
char c = 'a';
string[0] = c;
string[1] = '\000';
oder wenns einem lieber ist kann man auch einfach string[1] = 0; schreiben
Ich bevorzuge '\000' weil das vom mcedit hervorgehoben wird

Tiamat
2008-06-09, 17:33:31
Hi,
in Java wäre die Lösung

char x = 'H';
String bla = String.valueOf(x);


Gruß
Tiamat