Stringbearbeitung



  • Hallo, habe folgendes Problem:
    Ich möchte aus einem String die Großbuchstaben löschen:

    Eingabe: HallO
    Ausgabe: all

    Folgende Funktion habe ich schon, bekomme aber nur Zeichenmüll als Ausgabe.

    schonmal danke....

    void delgross(char *s1, char *s2);

    #include <stdio.h>

    int main(void)
    {

    char s1[20];
    char s2[20];

    printf("String eingeben:\n");
    scanf("%19s", s1);

    delgross(s1, s2);

    printf("Der neue String lautet: %s\n", s2);

    return 0;

    }

    void delgross(char *s1, char *s2)
    {
    int i = 0;

    while(s1[i] != '\0')
    {
    if((s1[i] >= 'A') && (s1[i] <= 'Z'))
    { i++;
    }
    else
    s2[i] = s1[i];
    i++;

    }

    s2[i]='\0';
    }



  • Du brauchst zwei verschiedene Indexvariablen, mit denen du durch die Arrays s1 bzw. s2 navigierst - deine Funktion lässt die Positionen in s2 unverändert, an denen in s1 ein Großbuchstabe steht (und die enthalten bei Programmstart Datenmüll).



  • funktioniert, danke für die schnelle hilfe


Anmelden zum Antworten