Forum: Compiler & IDEs An Funktion Variable übergeben, in die gespeichert werden soll.


von Mario (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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!

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.