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 文字をコピーしたい場合は、次のようにarrayしてstring実行できます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、必要に応じて、null で終了する 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 に答える