C 文字列操作 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(文字列コピー)
(文字列コピー)
187行: 187行:
 
<br />
 
<br />
 
で、結局は_tcsncpy_sを使いなさいってことになります。Unicode設定ならワイド文字版で、文字列長に厳しい設定が必要なwcsncpy_sだね。
 
で、結局は_tcsncpy_sを使いなさいってことになります。Unicode設定ならワイド文字版で、文字列長に厳しい設定が必要なwcsncpy_sだね。
 +
<syntaxhighlight lang="cpp" line start="1">
 +
#include <iostream>
 +
//#include<locale.h> tchar.hがインクルードされていれば、いらない。
 +
#include<tchar.h>
 +
int main() {
 +
_tsetlocale( LC_ALL, _T("Japanese"));
 +
TCHAR *cStr0[]={_T("表示:よねウィキの機能<yonewiki>"),_T("表示:よねウィキの機能1<yonewiki>"),_T("表示:よねウィキの機能2<yonewiki>")};
 +
TCHAR **pcStr0 = new TCHAR*[sizeof(cStr0)/sizeof(*cStr0)];
 +
for(int i = 0; i < (sizeof(cStr0)/sizeof(*cStr0)); i++){
 +
                _tprintf(_T("cStr0=%s sizeof=%d StrCount=%d\n"), cStr0[i], sizeof(cStr0)/sizeof(*cStr0),_tcslen(cStr0[i]));
 +
pcStr0[i] = new TCHAR[_tcslen(cStr0[i]) + 1];
 +
_tprintf(_T("cStr0=%s\n\n"),*(cStr0 + i));
 +
_tcscpy_s(pcStr0[i], _tcslen(cStr0[i]) + 1,cStr0[i]);
 +
}
 +
for(int i = 0; i < sizeof(cStr0)/sizeof(*cStr0); i++){
 +
_tprintf(_T("_tcslen(cStr0[i])=%d\npcStr0=%s\n cStr0=%s\n\n"),_tcslen(cStr0[i]),*(pcStr0 + i),*(cStr0 + i));
 +
}
 +
for(int i = 0; i < sizeof(cStr0)/sizeof(*cStr0); i++){
 +
delete[] *(pcStr0 + i);
 +
}
 +
delete[] pcStr0;
 +
printf("\n");
 +
return 0;
 +
}
 +
</syntaxhighlight>
 +
という感じでしたね。
  
 
=='''文字列連結'''==
 
=='''文字列連結'''==

2013年11月30日 (土) 00:00時点における版



個人用ツール
名前空間

変種
操作
案内
ツールボックス