作者rosemary0401 (rosemary0401)
看板C_and_CPP
標題[問題] 把字串的前三個字元存到另一個字串
時間Wed May 11 23:36:46 2011
WCHAR *wszStr = new WCHAR[4];
wmemcpy(wszStr, L"abcde", 3);
wszStr[4] = L'\0';
//用wcout印出來確實是abc
wcout << wszStr << endl;
//但是字串比對回傳值是1,表示兩個字串不相等
int nResult = wcscmp(wszStr, L"abc");
//且刪除時會出錯
delete [] wszStr;
為什麼呢?
該如何正確的把字串的前3個字元,複製到另一個字串上呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.251.148.121
推 purpose:4 means 0~3 05/11 23:44
推 legnaleurc:wszStr[4] = L'\0'; // 其實這是第五個字元 05/11 23:58
→ loveme00835:看你混用就覺得好難過 05/12 01:40
→ rosemary0401:原來是我粗心了 冏 05/12 23:17
→ rosemary0401:混用是甚麼意思啊? 05/12 23:17
→ loveme00835:標準裡沒有定義 WCHAR 這個形態, 不要跟 WinNT.h 混雜 05/13 03:47
→ loveme00835:在一起還不知道理由, 到時候改寫有得妳受 05/13 03:47