Zeichen umwandeln
-
Ich habe gesehen dass du eine Lösung gepostet hast, mir ging es nur darum wieso es nicht auf die eine Art funktioniert.
atoi braucht eine Zeichenkette.
Meine Überlegung war jetzt, wenn ich aus
zahl[5]="1234"
nur die 2 haben will, könnte ich an die 2 noch '\0' dranhängen und dann wäre es nicht mehr nur ein Zeichen sondern eine Zeichenkette.
Aber ist egal, eine Lösung ist vorhanden.
Ich benütze Linux.
- Ich habe eine do-while Schleife. Die while-Bedingung ist bischen lang.
Erst ab dem zweiten mal wenn die do-Schleife ausgeführt wird will ich etwas ausgeben.
Muss ich da eine if-Schleife in die do-Schleife machen oder kann ich das auch irgendwie an das while anhängen.
zb. so
do { }while( ){ }
2)Ich habe
scanf("%d %d %d %d", a,b,c,d)
. Kann ich irgendwie sagen dass ab der 5 Zahl (wenn ich mehrere eingebe), die Zahl nicht mehr am Bildschirm erscheinen soll.
3)Ich würde gerne Farbpunkte verwenden zb. 1=rot, 2=blau usw.
Ist das irgendwie machbar.
- Ich habe eine do-while Schleife. Die while-Bedingung ist bischen lang.
-
hatschii schrieb:
Meine Überlegung war jetzt, wenn ich aus
zahl[5]="1234"
nur die 2 haben will, könnte ich an die 2 noch '\0' dranhängen und dann wäre es nicht mehr nur ein Zeichen sondern eine Zeichenkette.damit würdeste aber die '3' vernichten. mach lieber zahl[1]-'0' (hat ja supertux schon vorgeschlagen).
-
hatschii schrieb:
- Ich habe eine do-while Schleife. Die while-Bedingung ist bischen lang.
Erst ab dem zweiten mal wenn die do-Schleife ausgeführt wird will ich etwas ausgeben.
Muss ich da eine if-Schleife in die do-Schleife machen oder kann ich das auch irgendwie an das while anhängen.
entweder mit ner if-anweisung (keine if-schleife), oder du macht das, was die schleife beim ersten durchlauf machen soll, vor der eigentlichen schleife.
- Ich habe eine do-while Schleife. Die while-Bedingung ist bischen lang.
-
hatschii schrieb:
Meine Überlegung war jetzt, wenn ich aus
zahl[5]="1234"
nur die 2 haben will, könnte ich an die 2 noch '\0' dranhängen und dann wäre es nicht mehr nur ein Zeichen sondern eine Zeichenkette.
du kannst in einem Zeichen kein weiteres "reinquetschen" oder so. Weißt nicht, was du dir da vorstellst. C ist ganz einfach, man hält sich strikt an die Datentypen, ein zahl[2] ist ein char und du kannst es nicht einfach so daraus etwas anders machen.
-
hatschii schrieb:
Hallo ich würde gerne 5 char Zeichen in int umwandeln.
Poste doch mal ganz genau deine Anfangssituation, und welches Ergebniss du am Ende erhalten möchtest. So etwas wie:
Ausgangspunkt:
char zahl[5] = {'1', '2', '3', '4', '5'};
erwartete Ausgabe:
Zahl 1 = 1
Zahl 2 = 2
Zahl 3 = 3
Zahl 4 = 4
Zahl 5 = 5Lösung wäre dann:
char zahl[5] = {'1', '2', '3', '4', '5'}; int i; for(i = 0; i < 5; i++){ printf("Zahl %i = %i\n", (i+1), (int)(zahl[i] - '0')); }
-
@guggstdu
zahl[i] - '0'
das passt eigentlich ich will aus einer eingegebenen char-Zahl eine int Zahl.
Danke.Ich habe in einer do-while-Schleife eine doppelte for Schleife die auf Zahlen geprüft wird. Wenn eine Zahl doppelt vorkommt soll die do-Schleife noch mal durchlaufen werden.
Die doppelte for Schleife kann ich ja nicht in die while()-Bedingung schreiben.
Damit ich nicht jeden Wert einzeln in der while-Bedingung überprüfe bräuchte ich eine Hilfsvariable oder gäbe es noch eine andere Möglichkeit.Man kann ja am Anfang schreiben
char zahlen[10]={0};
Wie ist es aber wenn ich mitten im Programm das zahlen-Array auf 0 setzen will
Wie kann ich in einem C-Programm rote Punkte auf der Konsole ausgeben.
Ich bin mir nicht sicher ob Ansi-C das richtige Forum ist, wenn nicht wo kann ich diese Frage stellen.MfG
-
hatschii schrieb:
Wie ist es aber wenn ich mitten im Programm das zahlen-Array auf 0 setzen will
for(i = 0; i < 5; i++){ zahl[i]=0; }
-
Meinte
int zahlen[5]={0};
Gibt es keine einfachere Möglichkeit als die for-Schleife.
-
hatschii schrieb:
Meinte
int zahlen[5]={0};
Gibt es keine einfachere Möglichkeit als die for-Schleife.
für nullsetzen kannste auch
memset(zahlen,0,sizeof(zahlen));
schreiben. aber einfacher finde ich das nicht.
-
hatschii schrieb:
Wie kann ich in einem C-Programm rote Punkte auf der Konsole ausgeben.
Ich bin mir nicht sicher ob Ansi-C das richtige Forum ist, wenn nicht wo kann ich diese Frage stellen.
MfGDOS und Win32-Konsole oder bei den Linuxern.
-
Wichtiger ist mir momentan Linux
-
hatschii schrieb:
@guggstdu
zahl[i] - '0'
das passt eigentlich ich will aus einer eingegebenen char-Zahl eine int Zahl.
Danke.Na toll, siehe Seite 1, mein erster Beitrag
wozu geb ich mir hier die Mühe, wenn Leute nicht mal die Beiträge zu lesen scheinen?
-
Ich hatte deinen Beitrag gelesen. Ich hatte jedoch das atoi für die Umwandlung im Kopf und somit wollte ich versuchen das auf diese Art zu lösen. Ich wußte nicht dass das nur für Zeichenketten gilt und wollte es auf diese Art probieren.
Letztendlich mußte ich diese Variante mit der Ascii-Subtrahierung hinnehmen.