QT小知识点(6) -QString与QByteArray相互转换方法

转自:http://blog.csdn.net/xgbing/article/details/7771898

Qt GUI API中使用Unicode类型的字符串类QString。使用Unicode的好处是可以支持更多的地区语言,ASCIIUncode的子集。

QByteArrayQString的方法和属性相似,可以参考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”


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值