我需要将 char 数组转换为字符串。像这样的东西:
char array[20];
char string[100];
array[0]='1';
array[1]='7';
array[2]='8';
array[3]='.';
array[4]='9';
...
我想得到类似的东西:
char string[0]= array // where it was stored 178.9 ....in position [0]
你说你有这个:
char array[20]; char string[100];
array[0]='1';
array[1]='7';
array[2]='8';
array[3]='.';
array[4]='9';
你想要这个:
string[0]= "178.9"; // where it was stored 178.9 ....in position [0]
你不能这样。一个 char 包含 1 个字符。就是这样。C 中的“字符串”是一个字符数组,后跟一个标记字符(NULL 终止符)。
现在,如果您想复制前 x 个字符,array
您string
可以使用memcpy()
:
memcpy(string, array, x);
string[x] = '\0';
假设array
是一个不以 结尾的字符数组\0
,您将要使用strncpy
:
char * strncpy(char * destination, const char * source, size_t num);
像这样:
strncpy(string, array, 20);
string[20] = '\0'
然后string
将是一个空终止的 C 字符串,根据需要。
您可以使用strcpy
,但请记住以'\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);