Converteer char-array naar string met C

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 arraynaar stringwilt kopiëren, kunt u dat doen met memcpy():

memcpy(string, array, x);
string[x] = '\0'; 

Antwoord 2, autoriteit 23%

Ervan uitgaande dat arrayeen tekenarray is die niet eindigt op \0, moet je strncpygebruiken:

char * strncpy(char * destination, const char * source, size_t num);

vind ik leuk:

strncpy(string, array, 20);
string[20] = '\0'

Dan zal stringeen op nul eindigende C-string zijn, zoals gewenst.


Antwoord 3, autoriteit 13%

U kunt strcpygebruiken, 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);

Other episodes