string übergeben



  • char Bilden(char *p)
    {
    char str[20];
    
    sprintf( str,"AAAA,%s ",p);
    sprintf( str,"%s\r\n", str);
    
    printf("%s", str);
    return *str;
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    
          char *va= "P";
          char str;
    	  char out[20];
    	  str=Bilden(va);
    
    	  sprintf( out,"%s\r\n", str);
    
         printf("%s",out);
    
    	return 0;
    }
    

    Hallo ich kriege hier keine richtige Ausgabe von sprintf( out,"%s\r\n", str); ..Kann jemend helfen..



  • Die lokalen Variablen innerhalb einer Funktion existieren auch nur innerhalb ihres Scopes (innerhalb der geschweiften Klammern), es sei denn sie sind "static".

    zB.:

    char *Bilden(char *p) // <-- char*
    {
    static char str[20]; // <-- static
    
    sprintf( str,"AAAA,%s ",p);
    sprintf( str,"%s\r\n", str);
    
    printf("%s", str);
    return str; // Zeiger zurückgeben
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    
          char *va= "P";
          char *str; // <- char*
          char out[20];
          str=Bilden(va);
    
          sprintf( out,"%s\r\n", str);
    
         printf("%s",out);
    
        return 0;
    }
    

    An deiner Einrückung solltest du auch noch arbeiten 😃

    Edit:
    Zudem muss str vom Typ char* sein und die Funktion "Bilden" auch einen char* zurückgeben, siehe oben.

    Edit2:
    Es stellt sich trotzdem die Frage, was das Ganze eigentlich soll 😕



  • vielen vieln dank!!!



  • BernaC schrieb:

    vielen vieln dank!!!

    Mich würde trotzdem interessieren was du eigentlich genau machen willst, denn ich glaube nicht, dass das ein besonders glanzvoller Weg zum Ziel ist.



  • static ist eigentlich nicht die Lösung Das macht nur Probleme falls du die Funktion von verschiedenen Stellen aufrufst.

    Übergib den String in den du schreiben möchtest.


Log in to reply