String an Funktion übergeben!



  • Hallo,

    wie übergebe ich eine Ansammlung von Strings an eine Funktion? Ich habe es versucht wie in dem Thread den ich letzte Woche erstellt habe, aber ich bekomme das nicht hin 😞 mit Zahlen geht's ohne Probleme

    ich habe eine Ansammlung von Strings, also

    char fld[10][20];
    

    diesen String übergebe ich an die Funktion mit

    fkt(&fld[0][0]);
    

    ich greife in der Funktion auf die Elemente zu, indem ich die Feldposition ausrechne, quasi wie ein 1D Feld...

    Eingabe Funktioniert soweit...

    Mit der Ausgabe bin ich nicht zufrieden

    void __Ausgabe(char *String)
    {
    	int i=0;
    
    	for(i=0;i<=(_Y*_X)-1;i++)
    	{
    		printf("%c",String[i]);
    	}
    }
    

    _Y=20 und _X =10

    Es werden zwischen den eingegebenen Buchstaben Sonderzeichen ausgegeben und die stören 😞

    ----

    Aufgabe ist es die Strings in einer Funktion zu sortieren, aber ich hab keinen Plan wie, ich kenne zwar Bubblesort und Co, aber ich raff nicht, wie ich das umsetzen soll, mit Strings und Zeigern habe ich das noch nie gemacht!

    Vielleicht könnt ihr mir weiterhelfen :>

    thx im Voraus

    habr ihr event. URLs zu diesem Thema? Meine C Bücher überspringen diese Themen leider 😞



  • Sowas?

    #include <stdio.h>
    
    int main() { 
    char *fld[3]={"Hallo", "Test",NULL}; 
    
    __Ausgabe(fld); 
    
    return 0; 
    } 
    
    void __Ausgabe(char **String)  
    {  
        int i=0;  
    
        for(i=0;String[i]!=NULL;i++)  
        {  
            printf(String[i]);  
        }  
    }
    


  • Das kommt schon in die Richtung :>

    nur ich habe ein Problem, wenn ich den Zeiger in der Hauptfunktion nicht initialisiere, dann schmiert bei mir die Eingabe ab 😕 Die Ausgabe ist meißtens auch totale Glückssache 😞

    int main()
    {
    	char *String[3]={"In","out","DA"};
    
    	__Eingabe(String);
    	__Ausgabe(String);
    
    	return 0;
    }
    
    void __Eingabe(char **String)
    {
    	int Zaehler;
    
    	for(Zaehler=0; Zaehler<3; Zaehler++)
    	{
    		printf("%i. String = ",Zaehler+1,String[Zaehler]);
    		scanf("%s",String[Zaehler]); //Ansonsten Fehler bei der Uebergabe
    	}
    }
    
    void __Ausgabe(char **String)
    {
        int Zaehler;
    
        for(Zaehler=0;Zaehler<3;Zaehler++)
        {
            printf("\n%s",String[Zaehler]);
        }
    }
    

    Vielleicht hab ich was falsch gemacht :\, aber ich weiß nicht wo 😞


Anmelden zum Antworten