[C] De inhoud van een pointer in een array zetten

Pagina: 1
Acties:

  • amiga1260
  • Registratie: Juni 2003
  • Laatst online: 25-05 17:01
Ik heb de volgende programma geschreven:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <string.h>
#include "stdafx.h"

char string[] = "Hallo, hoe gaat het?";
char scheiding[]   =" , ?";
char *woord;
char tekst[1000];

void splitsen()
{   
    int i=0;
    printf( "%s\n\nGesplitste woorden:\n", string );
    woord = strtok( string, scheiding);
    while( woord != NULL )
    {
        //strcpy(tekst[i],woord[]);
        printf( " %s\n", woord);
        woord = strtok( NULL, scheiding);
        i++;
    
    }
    
    
}
void main( void )
{
    splitsen();
   getchar();

}

Mijn probleem is hoe ik uit de pointer de waarde eruit kan halen en dan in een array van strings kan zetten. In Java heb je .value om de in houd te lezen.

Hoe werkt het in C?

[ Voor 9% gewijzigd door amiga1260 op 04-03-2004 09:41 . Reden: Code tags erin gezet ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
In C/C++ heb je de value-of en adress-of operator.

Met & krijg je het adres van een variabele:
code:
1
2
3
int i;
i = 5;
cout << &i;

geeft je het adres van de variabele i.

Met de value-of operator kan je de waarde van een pointer bekomen, dit doe je
door een * te zetten voor je pointer-variabele.

Stel dat i een pointer is:
code:
1
2
cout << i; // dit geeft het adres waar i naar verwijst
cout << *i; // dit geeft de waarde van het adres waar i naar verwijst


Dit staat toch wel in ieder goed boek uitgelegd ?

[ Voor 20% gewijzigd door whoami op 04-03-2004 09:22 ]

https://fgheysels.github.io/


Verwijderd

C:
1
2
3
4
5
char * chpointer;
char buffer[100];
strncpy(buffer, chpointer, 100);
// of:
sprintf(buffer, "%s", chpointer);


Zet ook even je code tussen [code] tags, dat leest wat makkelijker.

  • amiga1260
  • Registratie: Juni 2003
  • Laatst online: 25-05 17:01
Bedankt voor de tip.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

whoami schreef op 04 maart 2004 @ 09:21:
Met de value-of operator kan je de waarde van een pointer bekomen, dit doe je
door een * te zetten voor je pointer-variabele.
Value-of? :?

Dat ding heet 'dereference', en de bijbehorende activiteit 'dereferencing', oftewel het ervoor zorgen dat je er niet meer naar wijst maar het gewoon direct in handen hebt.

Professionele website nodig?


Verwijderd

Als je string bewaart, kan je de char pointers die strtok teruggeeft gewoon in een array zetten:

C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <string.h>
#include "stdafx.h"

char string[] = "Hallo, hoe gaat het?";
char scheiding[]   =" , ?";
char *woord[10];
char tekst[1000];

void splitsen()
{    
    int i=0;
    printf( "%s\n\nGesplitste woorden:\n", string );
    woord = strtok( string, scheiding);
    while( woord != NULL )
    {
        //strcpy(tekst[i],woord[]);
        printf( " %s\n", woord);
        woord[i] = strtok( NULL, scheiding);
        i++;
    
    }
    
    
}
Pagina: 1