转自:http://blog.csdn.net/xgbing/article/details/7771898
Qt GUI API中使用Unicode类型的字符串类QString。使用Unicode的好处是可以支持更多的地区语言,ASCII是Uncode的子集。
QByteArray和QString的方法和属性相似,可以参考QString。另外有一些与QByteArray相关的非成员函数:
[cpp] view plain copy
1. //Related Non-Members
2.
3. //计算CRC16校验和
4. quint16 qChecksum ( const char * data, uint len )
5. //压缩data,并返回新的值,参数compressionLevel的值是0~9
6. QByteArray qCompress ( const QByteArray & data, int compressionLevel = -1 )
7. QByteArray qCompress ( const uchar * data, int nbytes, int compressionLevel = -1 )
8. //解压缩
9. QByteArray qUncompress ( const QByteArray & data )
10. QByteArray qUncompress ( const uchar * data, int nbytes )
11. //格式化字符串
12. int qsnprintf ( char * str, size_t n, const char * fmt, ... )
13. int qvsnprintf ( char * str, size_t n, const char * fmt, va_list ap )
14. //比较字符串
15. int qstrcmp ( const char * str1, const char * str2 )
16. //复制字符串
17. char * qstrcpy ( char * dst, const char * src )
18. char * qstrncpy ( char * dst, const char * src, uint len )
19. //分配空间复制字符串返回
20. char * qstrdup ( const char * src )
21. //忽略大小写的字符串比较
22. int qstricmp ( const char * str1, const char * str2 )
23. int qstrnicmp ( const char * str1, const char * str2, uint len )
24. //返回字符串的长度
25. uint qstrlen ( const char * str )
26. uint qstrnlen ( const char * str, uint maxlen )
27. //固定长度内的字符串比较
28. int qstrncmp ( const char * str1, const char * str2, uint len )
29. //相关QByteArray和const char *的运算符
30. bool operator!= ( const QByteArray & a1, const QByteArray & a2 )
31. bool operator!= ( const QByteArray & a1, const char * a2 )
32. bool operator!= ( const char * a1, const QByteArray & a2 )
33. const QByteArray operator+ ( const QByteArray & a1, const QByteArray & a2 )
34. const QByteArray operator+ ( const QByteArray & a1, const char * a2 )
35. const QByteArray operator+ ( const QByteArray & a1, char a2 )
36. const QByteArray operator+ ( const char * a1, const QByteArray & a2 )
37. const QByteArray operator+ ( char a1, const QByteArray & a2 )
38. bool operator< ( const QByteArray & a1, const QByteArray & a2 )
39. bool operator< ( const QByteArray & a1, const char * a2 )
40. bool operator< ( const char * a1, const QByteArray & a2 )
41. QDataStream & operator<< ( QDataStream & out, const QByteArray & ba )
42. bool operator<= ( const QByteArray & a1, const QByteArray & a2 )
43. bool operator<= ( const QByteArray & a1, const char * a2 )
44. bool operator<= ( const char * a1, const QByteArray & a2 )
45. bool operator== ( const QByteArray & a1, const QByteArray & a2 )
46. bool operator== ( const QByteArray & a1, const char * a2 )
47. bool operator== ( const char * a1, const QByteArray & a2 )
48. bool operator> ( const QByteArray & a1, const QByteArray & a2 )
49. bool operator> ( const QByteArray & a1, const char * a2 )
50. bool operator> ( const char * a1, const QByteArray & a2 )
51. bool operator>= ( const QByteArray & a1, const QByteArray & a2 )
52. bool operator>= ( const QByteArray & a1, const char * a2 )
53. bool operator>= ( const char * a1, const QByteArray & a2 )
54. QDataStream & operator>> ( QDataStream & in, QByteArray & ba )
QByteArray与QString之间的转换:
示例:
[cpp] view plain copy
1. QByteArray cstr("abcd");
2. QString s = cstr;
3.
4. QByteArray cstr("abcd");
5. QString s;
6. s.prepend(cstr);
7.
8. QString s("hello");
9. QByteArray cstr = s.toAscii();
10.
11. QString s("hello");
12. QByteArray cstr = s.toLatin1();
QByteArray类同样不以'\0'为结尾:如
[cpp] view plain copy
1. QByteArray s;
2. s.resize(5);
3. s[0] = '1';
4. s[1] = '2';
5. s[2] = '3';
6. s[3] = '\0';
7. s[4] = 'a';
8.
9. cout << s << endl;
屏幕打印的是:“123 a”