字符串截取問題

以前在一個有關網絡通訊模塊的項目中,遇到了有關字符串截取的問題。網絡

定義一個發送某個信息的幀協議。其中一部分是定長的字符串,假定爲30個字節大小,多餘字節補0;字符串

解析過程:方法

獲取要解析的字符串通信

  1. 每次偏移指定的字節數,獲取相應的信息
  2. 假定要解析的字符串爲char* data;,解析上述定義的字符串的偏移量爲x

截取須要的字符串:協議

QString str = QString::fromUtf8(data + x, 30);項目

這個解析方法是錯誤的。這個就得到了一個固定大小的字符串(30字節),而字符串比較大小會比較字節大小,margin

而且0在字符串中是不顯示的,這就會致使一個不明顯的錯誤。網絡通信

正確的解析方法是:字符

QString str = QString::fromUtf8(data + x);錯誤

只要須要解析的字符串大小在30字節以內,而且多餘字節補0的狀況下,該方法就能正確解析所須要的字符串。

相關文章
相關標籤/搜索