確立內容可以被正確修改並使用。如果你需要修改CString中的內容,它有一個特殊的方法可以使用,那就是GetBuffer,它的作用是返回一個可寫的緩衝指標。如果你打算修改字元或者截短字串,你完全可以這樣做:
CString s(_T("File.ext")); LPTSTR p = s.GetBuffer(); LPTSTR dot = strchr(p, "" . ""); if(p != NULL) *p = _T(""\0""); s.ReleaseBuffer(); 這是 GetBuffer 的第一種用法,也是最簡單的一種,不用給它傳遞引數,它使用預設值 0,意思是:“給我這個字串的指標,我保證不加長它”。
當你呼叫 ReleaseBuffer 時,字串的實際長度會被重新計算,然後存入 CString 物件中。 必須強調一點,在 GetBuffer 和 ReleaseBuffer 之間這個範圍,一定不能使用你要操作的這個緩衝CString 物件的任何方法。因為 ReleaseBuffer被呼叫之前,該 CString 物件的完整性得不到保障。
確立內容可以被正確修改並使用。如果你需要修改CString中的內容,它有一個特殊的方法可以使用,那就是GetBuffer,它的作用是返回一個可寫的緩衝指標。如果你打算修改字元或者截短字串,你完全可以這樣做:
CString s(_T("File.ext")); LPTSTR p = s.GetBuffer(); LPTSTR dot = strchr(p, "" . ""); if(p != NULL) *p = _T(""\0""); s.ReleaseBuffer(); 這是 GetBuffer 的第一種用法,也是最簡單的一種,不用給它傳遞引數,它使用預設值 0,意思是:“給我這個字串的指標,我保證不加長它”。
當你呼叫 ReleaseBuffer 時,字串的實際長度會被重新計算,然後存入 CString 物件中。 必須強調一點,在 GetBuffer 和 ReleaseBuffer 之間這個範圍,一定不能使用你要操作的這個緩衝CString 物件的任何方法。因為 ReleaseBuffer被呼叫之前,該 CString 物件的完整性得不到保障。