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.