Zeichen umwandeln



  • hatschii schrieb:

    1. 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.
    🙂



  • 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 = 5

    Lö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.
    MfG

    DOS 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?



  • @supertux

    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. 😉


Anmelden zum Antworten