2016-12-12 3 views
0

私はchar16_t*をコピーして関数に渡しましたが、それを行う方法が見つかりませんでした。char16_t *からchar16_tへのコピー*

foo(char16_t* characters) { 
    char16_t* copiedCharacters; 
    //copy characters to copiedCharacters 
} 

私はstrncopy()を使用しようとしたが、それだけをコピーchar*

答えて

-1

だけ(のstrcpyから借りた)公知の構造がありstrcpy implementation

char16_t *mystrcpy(char16_t *dest, const char16_t *src) 
{ 
    unsigned i; 
    for (i=0; src[i] != '\0'; ++i) 
    dest[i] = src[i]; 
    dest[i] = '\0'; 
    return dest; 
} 
+1

あなたは、インデックスを使用している場合、タイプは 'size_t'する必要があります。 – chqrlie

+0

chqrlie:http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf "7.17一般的な定義(...)size_tは、結果の符号なし整数型です。 sizeof演算子 " –

+2

' size_t'は符号なし整数型です。 'unsigned'の同義語ではありません。例: 'size_t'は' unsigned'よりも広いかもしれません。 'size_t'は、配列のインデックスとサイズの計算に使用するのに最適な型です。 – chux

1

を調整します

char16_t* str16cpy(char16_t* destination, const char16_t* source) 
{ 
    char16_t* temp = destination; 
    while((*temp++ = *source++) != 0) 
    ; 
    return destination; 
} 
関連する問題