Ik moet een char-array converteren naar een string.
Zoiets als dit:
char array[20];
char string[100];
array[0]='1';
array[1]='7';
array[2]='8';
array[3]='.';
array[4]='9';
...
Ik zou graag zoiets willen:
char string[0]= array // where it was stored 178.9 ....in position [0]
Antwoord 1, autoriteit 100%
Je zegt dat je dit hebt:
char array[20]; char string[100];
array[0]='1';
array[1]='7';
array[2]='8';
array[3]='.';
array[4]='9';
En je zou dit graag willen hebben:
string[0]= "178.9"; // where it was stored 178.9 ....in position [0]
Dat mag je niet hebben. Een char heeft 1 karakter. Dat is het.
Een “tekenreeks” in C is een reeks tekens gevolgd door een schildwachtteken (NULL-terminator).
Als u nu de eerste x tekens uit array
naar string
wilt kopiëren, kunt u dat doen met memcpy()
:
memcpy(string, array, x);
string[x] = '\0';
Antwoord 2, autoriteit 23%
Ervan uitgaande dat array
een tekenarray is die niet eindigt op \0
, moet je strncpy
gebruiken:
char * strncpy(char * destination, const char * source, size_t num);
vind ik leuk:
strncpy(string, array, 20);
string[20] = '\0'
Dan zal string
een op nul eindigende C-string zijn, zoals gewenst.
Antwoord 3, autoriteit 13%
U kunt strcpy
gebruiken, maar vergeet niet om de array te beëindigen met '\0'
char array[20]; char string[100];
array[0]='1'; array[1]='7'; array[2]='8'; array[3]='.'; array[4]='9'; array[5]='\0';
strcpy(string, array);
printf("%s\n", string);