Tags:
c++
Jeg har en char** som kan indeholde 0 0 20 20 (f. eks.)
Jeg skal bruge hvert tal, i hver sin int variabel.
Hvordan gør jeg det?
8 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Hej
Du kan bruge itoa eller du kan måske anvende typecast.
Hver element behandles for sig i arrayet. Hvis dette ikke lykkes så skriv lige en stump af den kode du har, eller lidt mere forklaring.
Med Venlig Hilsen
Janus S. Andersen
0
EXPORT Rgn_CreateRect(HWND,HWND,char *data,char*,BOOL,BOOL)
char *p = data;
Der hvor jeg skal bruge variablen(p) er
WinRgn = CreateRectRgn (v1,v2,v3,v4);
hvor v1 = første ord, v2 = 2. ord osv..
Håber det hjælper...
0
p er i dit eksempel her en char *, dit spørgsmål gik på en char **, hvad er det du skal bruge?
Ex:
#include <stdlib.h>
char *p = whatever();
int i = strtol(p, 0, 10);
char **pp = whatever();
int i0, i1, i2, i3;
i0 = strtol(pp[0], 0, 10);
i1 = strtol(pp[1], 0, 10);
...
0
p er i dit eksempel her en char *, dit spørgsmål gik på en char **, hvad er det du skal bruge?
Ex:
#include <stdlib.h>
char *p = whatever();
int i = strtol(p, 0, 10);
char **pp = whatever();
int i0, i1, i2, i3;
i0 = strtol(pp[0], 0, 10);
i1 = strtol(pp[1], 0, 10);
...
Hmm det er hvis kun en char* aligevel..
men hvad kan jeg bruge "int i = strtol(p, 0, 10);" til hvis jeg gerne vil have fire variabler med hvert sit tal f. eks.:
v1 = 0
v2 = 0
v3 = 30
v4 = 90
ud fra en *p som er: 0 0 30 90
0
F.ex:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char foo[] = "12 34 56 78", *s = foo;
int v1, v2, v3, v4;
v1 = strtol(s, &s, 10);
v2 = strtol(s, &s, 10);
v3 = strtol(s, &s, 10);
v4 = strtol(s, &s, 10);
printf("%d, %d, %d, %d", v1, v2, v3, v4);
return 0;
}
0
Hvis man er mere til C++:
#include <strstream>
#include <iostream>
int main(void)
{
char foo[] = "12 34 56 78";
int v1, v2, v3, v4;
std::strstream s;
s << foo;
s >> v1 >> v2 >> v3 >> v4;
std::cout << v1 << ", " << v2 << ", " << v3 << ", " << v4 << std::endl;
return 0;
}
0
F.ex:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char foo[] = "12 34 56 78", *s = foo;
int v1, v2, v3, v4;
v1 = strtol(s, &s, 10);
v2 = strtol(s, &s, 10);
v3 = strtol(s, &s, 10);
v4 = strtol(s, &s, 10);
printf("%d, %d, %d, %d", v1, v2, v3, v4);
return 0;
}
Mange tak.. så virkede det endelig
0
Hvis du har fået svar på dit spørgsmål, eller ikke har brug for svaret længere, så luk venligst denne tråd.
/AC