PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C] Adressen hochzählen ?



Prick
04-08-2004, 20:11
Hallo,

ich habe da mal eine kleine Frage zum Zählen von Adressen innerhalb einer Schleife. Folgendes Szenarion:
Ich habe einen String, besser gesagt die Adresse eines Elements innerhalb des Strings und möchte nun anhand dieser Adresse, auf weitere, folgende Elemente im String zugreifen.

Beispiel:
...
char mein_string[] = "hallo hier bin ich"; // ich habe eigentlich nur über die adresse zugriff auf den string
char *pointer = &mein_string[4];
...

Ich möchte nun vom "o" (im string) ausgehend, bis beispielsweise zum "b" von "bin" zählen und dabei auf das Element zugreifen, meinetwegen es ausgeben.
Wenn ich mich jetzt nicht verzählt habe, liegen beide Elemente 7 Bytes auseinander. Wie kann ich also vom "o" bis zum "b" zählen, wenn ich weiß, wie weit (in bytes) beide auseinander liegen? Meine for()-Schleife wollte nicht so wie ich, daher meine Frage hier im Forum. Wie gesagt, es soll anhand der Adresse der String durchgangen werden, nicht anhand der "Nummerierung" des Arrays (ary[0], ary[1], ...).

Danke im Voraus,
h.d.

wraith
04-08-2004, 20:48
Ich möchte nun vom "o" (im string) ausgehend, bis beispielsweise zum "b" von "bin" zählen und dabei auf das Element zugreifen, meinetwegen es ausgeben.


#include <stdio.h>

int main()
{
char mein_string[] = "hallo hier bin ich";
char *pointer = &mein_string[4];

int count = 7;

while(count--)
printf("%c",*pointer++);

pointer = &mein_string[4];

printf("\n%c",*(pointer + 7));
}