将char数组转换为字符串使用C.
我需要将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]
你不能拥有它。 一个字符包含1个字符。 而已。 C中的“字符串”是一个字符数组,后跟一个标记字符(NULL终止符)。
现在,如果要将array
的前x个字符复制到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);