Hoi Allen,
Ik ben mezelf c aan het leren, maar kom niet helemaal uit functies die met pointers omgaan.
Na de nodige tutorials gelezen te hebben en youtube filmpjes bekeken te hebben dacht ik het een heel eind te begrijpen, maar toch kom ik er niet helemaal uit.
Zou iemand mij misschien een klein stukje uitleg kunnen geven over het onderstaande?
Mijn dank is groot!
btw: het is voor een PIC microcontroller projectje en de compiler welke ik gebruik is de light versie van High Tech C v 9.81.
Ik zou graag een string willen "parsen" naar 2 verschillende strings, een voor en een na een speciaal teken, zoals:
char string[] = "This is our # test string";
het doel is dus om 2 strings over te houden met
char a[] = "This is our "
char b[] = " test string"
Nu ben ik hiervoor een beetje voor aan het experimenteren met strchr, de functie die voor ons het speciale teken opzoekt.
Als ik onderstaande code uitvoer:
Dan krijg ik terug:
pointer contains: # test string
pointer has a value of: ,
pointer points to adress value: 78
Nou de bovenste snap ik, die laat de string zien vanaf de waarde van de pointer van het # teken.
Alleen snap ik de tweede niet. Deze laat met %i de waarde 44 zien, en met de %c de komma.
Nu is in de ascii tabel snel genoeg opgezocht dat de , inderdaad de decimale waarde van 44 heeft; Maar wat ik niet begrijp is waar deze waarde 44 vandaan komt? Kan iemand mij dit uitleggen zodat ik weer verder kan puzzelen?
Alvast bedankt!
Gr. Sander.
Edit: code blok toegevoegd
Ik ben mezelf c aan het leren, maar kom niet helemaal uit functies die met pointers omgaan.
Na de nodige tutorials gelezen te hebben en youtube filmpjes bekeken te hebben dacht ik het een heel eind te begrijpen, maar toch kom ik er niet helemaal uit.
Zou iemand mij misschien een klein stukje uitleg kunnen geven over het onderstaande?
Mijn dank is groot!
btw: het is voor een PIC microcontroller projectje en de compiler welke ik gebruik is de light versie van High Tech C v 9.81.
Ik zou graag een string willen "parsen" naar 2 verschillende strings, een voor en een na een speciaal teken, zoals:
char string[] = "This is our # test string";
het doel is dus om 2 strings over te houden met
char a[] = "This is our "
char b[] = " test string"
Nu ben ik hiervoor een beetje voor aan het experimenteren met strchr, de functie die voor ons het speciale teken opzoekt.
Als ik onderstaande code uitvoer:
C:
1
2
3
4
5
6
| char string[] = "This is our # test string"; char *p = strchr(string, '#'); printf("pointer contains: %s \r\n", p); printf("pointer has a value of: %c \r\n", p); printf("pointer points to adress value: %i \r\n", &p); |
Dan krijg ik terug:
pointer contains: # test string
pointer has a value of: ,
pointer points to adress value: 78
Nou de bovenste snap ik, die laat de string zien vanaf de waarde van de pointer van het # teken.
Alleen snap ik de tweede niet. Deze laat met %i de waarde 44 zien, en met de %c de komma.
Nu is in de ascii tabel snel genoeg opgezocht dat de , inderdaad de decimale waarde van 44 heeft; Maar wat ik niet begrijp is waar deze waarde 44 vandaan komt? Kan iemand mij dit uitleggen zodat ik weer verder kan puzzelen?
Alvast bedankt!
Gr. Sander.
Edit: code blok toegevoegd