2013-07-27 68 views
0

什麼是轉換字符串用特殊的模板,就像一個sed UNIX的最佳方式轉變。 我必須和QT C++來做到這一點:格式一個C++字符串模板

原始字符串:00048500854006F85FF4B0 前C++變換:48500854006F85FF4B

消除所有在開始和我的字符串(而不是在中間)結束的0。 也許是sprintf的解決方案?

非常感謝您的幫助。

+0

實際上它是一個十六進制數,而不僅僅是一般的字符串? – Jiminion

+4

可能很容易用['的std :: string :: find_first_not_of'(http://en.cppreference.com/w/cpp/string/basic_string/find_first_not_of),['的std :: string :: find_last_not_of']( http://en.cppreference.com/w/cpp/string/basic_string/find_last_not_of)和['std :: string :: substr'](http://en.cppreference.com/w/cpp/string/basic_string/substr)(或者可能是基於迭代器範圍的構造函數)。 – BoBTFish

+0

是吉姆,這是一個十六進制數字,但我不想使用傳統的十六進制數字工具。 –

回答

4

有可能使用正則表達式來做到:

QString("00048500854006F85FF4B0").remove(QRegExp("(^(0)+)|((0)+$)")); 
0

您可以隨時使用的sed功率致電system ("sed 's/foo/bar/' file");或使用Qt QProcess中。在這種情況下,看到thisthis

+1

我認爲使用一個過程比使用C++/QT的內建函數更復雜 –