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> | ||
+ | という感じでしたね。 | ||
=='''文字列連結'''== | =='''文字列連結'''== |