I need to convert a char array to string. Something like this:
char array[20];
char string[100];
array[0]=\'1\';
array[1]=\'7\';
array[2]=\'8\';
array[3]=\'
You're saying you have this:
char array[20]; char string[100];
array[0]='1';
array[1]='7';
array[2]='8';
array[3]='.';
array[4]='9';
And you'd like to have this:
string[0]= "178.9"; // where it was stored 178.9 ....in position [0]
You can't have that. A char holds 1 character. That's it. A "string" in C is an array of characters followed by a sentinel character (NULL terminator).
Now if you want to copy the first x characters out of array to string you can do that with memcpy():
memcpy(string, array, x);
string[x] = '\0';
You can use strcpy but remember to end the array with '\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);
Assuming array is a character array that does not end in \0, you will want to use strncpy:
char * strncpy(char * destination, const char * source, size_t num);
like so:
strncpy(string, array, 20);
string[20] = '\0'
Then string will be a null terminated C string, as desired.