char** til int

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
Sorter efter stemmer Sorter efter dato
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



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...



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);
...



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



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;
}



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;
}



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 :)



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



t