hallo, es geht um eine Funktion mit String verarbeitung. Nun möchte ich an die Funktion die Variable übergeben, in die Gespeichert werden soll. Also z.B. funktion(String); Es soll also in die Variable String gepeichert werden. Es geht sicher mit Zeigern. Leider bin ich da noch nicht so ganz vertraut.
Mario wrote: > Es soll also in die Variable String gepeichert werden. Es geht sicher > mit Zeigern. Es geht sogar nur mit Zeigern. Beispiele: einen int retournieren
1 | void foo( int * a ) |
2 | {
|
3 | *a = 5; |
4 | }
|
5 | |
6 | int main() |
7 | {
|
8 | int b; |
9 | |
10 | foo( &b ); |
11 | |
12 | // b enthält jetzt 5
|
13 | }
|
mit strings (also character arrays)
1 | void bar( char * a ) |
2 | {
|
3 | strcpy( a, "Hallo World" ); |
4 | }
|
5 | |
6 | void foo( char * a ) |
7 | {
|
8 | a[0] = 'H'; |
9 | a[1] = 'a'; |
10 | a[2] = 'l'; |
11 | a[3] = 'l'; |
12 | a[4] = 'o'; |
13 | a[5] = '\0'; |
14 | }
|
15 | |
16 | int main() |
17 | {
|
18 | char string[20]; |
19 | |
20 | foo( string ); // string enthält jetzt "Hallo" |
21 | bar( string ); // string enthölt jetzt "Hallo World" |
22 | }
|
http://www.mikrocontroller.net/articles/FAQ#Wie_funktioniert_String-Verarbeitung_in_C.3F Zur Vertiefung unbedingt ein C-Buch studieren!
1 | void bar( char * a ) |
2 | {
|
3 | strcpy( a, "Hallo World" ); |
4 | }
|
Das ist schlecht in C, strncpy verwenden und am Besten die Puffergroesse mit uebergeben. Das ganze nennt man "call by reference".
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.