wie \n aus char str[] rauslassen...?



  • Heyo,

    ich hoffe die Frage ist nicht zu unverständlich ausgedrückt 🙂

    Also ich habe folgendes Übungsbeispiel zu strcmp()

    // 13.15.3 strcmp ()
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    void stringvergleich(char s1[],char s2[]){
         int i;
         i = strcmp(s1,s2);
         if (i==0)
            printf("%s = %s",s1,s2);
         else if (i<0){
              printf ("%s < %s",s1,s2);
         }
         else if (i>0){
              printf ("%s > %s",s1,s2);
         }
    }
    
    int main (void) {
        char str1[20];
        char str2[20];
        printf ("Bitte str1 fuellen: ");
        fgets (str1,20,stdin);
        printf ("Bitte str2 fuellen: ");
        fgets (str2,20,stdin);
    
        stringvergleich(str1,str2);
    
        getchar();
        EXIT_SUCCESS;
    }
    

    Bei der Ausgabe ist unschön, dass dann z.B. das Ergebis so aussieht:

    aa
    > ab

    In dem Buch stand, dass nach einem string wie z.B. hallo immer \n\0 angefügt wird. also "hallo\n\0" ...
    Dadurch verrutscht mein Ergebnis aber optisch unsauber... kann man das iwie umgehen?

    Greez

    Haimi



  • Nach Eingabe via fgets() sowas:

    char tmp;
    if (tmp = strchr (str1)) {
        *tmp = '\0';
    }
    


  • danke 🙂 das versteh ich noch nicht ganz... mit * ist immer was mit Zeigern... oder?

    Wenn ich die string Funktionen durch habe, komme ich in das Kapitel...

    Dann komme ich auf die Möglichkeit zurück und werde sie (hoffentlich) nachvollziehen können 🙂

    Greez

    Haimi


Anmelden zum Antworten