String in Funktion übergeben
-
Hallo Zusammen,
ich habe eine funktion, welche über einen Parameter einen String empfängt, und diesen an eine Serielle Schnittstelle übergibt. Die Funktion sieht im Gerüst folgendermassen aus:
void sendString (char output[25]){}
Wenn ich nun diese Methode mit einer vorher definierten Variable aus einem anderen C-File aufrufe, funktioniert das wunderbar:
char tempString[25] = "chalaz"; sendString(tempString);
Möchte ich jedoch einen String direkt übergeben, funktioniert das nicht so ganz:
sendString("challaz");
Hat jemand eine einfache Lösung für dieses Problem? Leider kann ich nicht für jeden zu sendenden String einfach eine neue Variable kreieren.
Gibt es noch eine einfachere Methode als mit Pointern?...Gruss noname17
-
//so... void SendString(const char* pString); //oder so void SendString (const std::string &sString);
-
noname17 schrieb:
Hallo Zusammen,
ich habe eine funktion, welche über einen Parameter einen String empfängt, und diesen an eine Serielle Schnittstelle übergibt. Die Funktion sieht im Gerüst folgendermassen aus:
void sendString (char output[25]){}
Wenn ich nun diese Methode mit einer vorher definierten Variable aus einem anderen C-File aufrufe, funktioniert das wunderbar:
char tempString[25] = "chalaz"; sendString(tempString);
Mach es lieber so:
/* const wenn die Zeichenkette nicht verändert wird */ void sendString (const char *output) { ... } char tempString[25] = "chalaz"; sendString(tempString); sendString("auch moeglich");
TrommlBomml schrieb:
//so... void SendString(const char* pString); //oder so void SendString (const std::string &sString);
mein C Compiler kann deinen zweiten Prototyp nicht verstehen. [klugscheisser]was ist denn überhaupt std::string???[/klugscheisser]
-
TrommlBomml schrieb:
void SendString (const std::string &sString);
Jo, astreines ANSI-C...
-
supertux schrieb:
was ist denn überhaupt std::string???
sieht irgendwie nach PHP aus.
-
Danke für die Antworten.
Muss ich nachher in der Methode normal mit der Variable output arbeiten?
void sendString(const char *output){ tLength = strlen(output); //Ausgabe der einzelnen Buchstaben über RS232 }
Leider funktioniert das nicht so richtig, es kommt nur kauderwelsch über die Schnittstelle raus.
Vielen Dank im Voraus
-
noname17 schrieb:
Danke für die Antworten.
Muss ich nachher in der Methode normal mit der Variable output arbeiten?
void sendString(const char *output){ tLength = strlen(output); //Ausgabe der einzelnen Buchstaben über RS232 }
Leider funktioniert das nicht so richtig, es kommt nur kauderwelsch über die Schnittstelle raus.
Vielen Dank im Voraus
falsche Baudrat vielleicht? Zeig mal lieber deinen Code.
-
Tachyon schrieb:
Jo, astreines ANSI-C...
hups, tschuldigung^^