Convert char array to string use C

后端 未结 3 799
迷失自我
迷失自我 2020-12-08 17:21

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]=\'         


        
相关标签:
3条回答
  • 2020-12-08 17:33

    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'; 
    
    0 讨论(0)
  • 2020-12-08 17:36

    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);
    
    0 讨论(0)
  • 2020-12-08 17:46

    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.

    0 讨论(0)
提交回复
热议问题