Verstehe ausgabe nicht
-
er gibt mir hier, wenn ich dollar drin habe: 01490149 aus
wieso das?#include <stdio.h> #include <stdlib.h> #include <string.h> int main (){ int array[4]={0,1,4,9}; char dollar[4]={'0','1','4','9'}; char feld[4]; int i; for(i=0;i<4;i++){ feld[i]=array[i]+48; } printf("%s",feld); system("Pause"); return 0; }
-
Das Problem ist das bei der printf() Ausgabe solange ausgegeben wird bis eine binäre Null kommt.
Du deklarierst erst array danach direkt dollar, das heißt im Speicher stehen die nebeneinander. Ich glaube die binäre Null wird bei Strings meistens automatisch ans Ende gesetzt.
Deswegen werden die auch beide ausgegeben.
Abhilfe könnte eine binäre Null am Ende von feld schaffen.#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int array[4] = { 0, 1, 4, 9 }; char dollar[4] = { '0', '1', '4', '9' }; char feld[5]; int i; feld[4] = '\0'; for (i = 0; i < 4; i++) { feld[i] = array[i] + 48; } printf("%s", feld); system("Pause"); return 0; }
-
danke dir