11

我需要将 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]
4

3 回答 3

32

你说你有这个:

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 个字符,arraystring可以使用memcpy()

memcpy(string, array, x);
string[x] = '\0'; 
于 2013-01-15T18:19:53.467 回答
7

假设array是一个不以 结尾的字符数组\0,您将要使用strncpy

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

像这样:

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

然后string将是一个空终止的 C 字符串,根据需要。

于 2013-01-15T18:16:33.667 回答
4

您可以使用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);
于 2013-01-15T18:18:33.620 回答