2013-03-26 57 views
0

我有:LPWSTR str=" Nguyen Phong Sac " 如何修剪str。 這意味着:str="Nguyen Phong Sac"如何在WIN32中使用trim()文本LPWSTR類型API

+0

您使用哪種語言? – 2013-03-26 07:49:25

+0

對於它的價值,這個問題中唯一的「代碼」行是不正確的。它是一個寬的字符串。此外,該文字是隻讀的(或至少應該是),但尚未分配給讀/寫指針var(錯誤類型)。 – WhozCraig 2013-03-26 08:11:40

回答

1

試試這個。請注意,此功能尚未經過全面測試,只是爲了明白。

void Trim(TCHAR *buffer) 
{ 
    int i = 0; 

    while (buffer[i++] == ' ' && buffer[i] != 0) 
    { 
    } 

    int first = i - 1 ; 

    i = lstrlen(buffer) ; 

    while (buffer[--i] == ' ' && i > 0) 
    { 
    } 

    int last = i + 1 ; 

    int j = 0 ; 
    for (i = first; i <= last - first; i++) 
    buffer[j++] = buffer[i] ; 

    buffer[j] = 0 ; 
} 
+1

使用isspace會更好,在我看來 – 2013-03-26 07:54:12

+0

這不是更好,這些古老的C運行時功能不好處理Unicode。至少使用iswspace(),但是確實考慮Unicode中的哪種字形被CRT視爲空間字符。有很多。 – 2013-03-26 10:56:19

相關問題