[問題] 把字串的前三個字元存到另一個字串

看板C_and_CPP (C/C++)作者 (rosemary0401)時間15年前 (2011/05/11 23:36), 編輯推噓2(206)
留言8則, 4人參與, 最新討論串1/1
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

05/11 23:44, , 1F
4 means 0~3
05/11 23:44, 1F

05/11 23:58, , 2F
wszStr[4] = L'\0'; // 其實這是第五個字元
05/11 23:58, 2F

05/12 01:40, , 3F
看你混用就覺得好難過
05/12 01:40, 3F

05/12 02:07, , 4F
05/12 02:07, 4F

05/12 23:17, , 5F
原來是我粗心了 冏
05/12 23:17, 5F

05/12 23:17, , 6F
混用是甚麼意思啊?
05/12 23:17, 6F

05/13 03:47, , 7F
標準裡沒有定義 WCHAR 這個形態, 不要跟 WinNT.h 混雜
05/13 03:47, 7F

05/13 03:47, , 8F
在一起還不知道理由, 到時候改寫有得妳受
05/13 03:47, 8F
文章代碼(AID): #1DogqGGd (C_and_CPP)
文章代碼(AID): #1DogqGGd (C_and_CPP)