• 9503阅读
  • 10回复

问一个关于字符串长度的问题 [复制链接]

上一主题 下一主题
离线cnng2008
 

只看楼主 倒序阅读 楼主  发表于: 2008-02-25
— 本帖被 XChinux 执行加亮操作(2008-02-27) —
我想问一下,我要如何得到QString里存的字符串所占用的字节数呢?
离线cnng2008

只看该作者 1楼 发表于: 2008-02-26
没人知道吗?
离线landuochong

只看该作者 2楼 发表于: 2008-02-27
自己就不能查查吗
QString::length ()
离线cnng2008

只看该作者 3楼 发表于: 2008-02-27
这个不行的。只能得到字的个数。
QString::length ()
离线蛮蛮
只看该作者 4楼 发表于: 2008-02-27
用sizeof(char)去乘length可不可以?
不知道是不是你想要的结果
蛮蛮工作室
离线cnng2008

只看该作者 5楼 发表于: 2008-02-28
估计不是
离线cnng2008

只看该作者 6楼 发表于: 2008-03-07
没人会吗?
离线zncggaofei
只看该作者 7楼 发表于: 2008-03-09
QString stores a string of 16-bit QChars, where each QChar corresponds one Unicode 4.0 character. (Unicode characters with code values above 65535 are stored using surrogate pairs, i.e., two consecutive QChars.)

QString::size()得到字符的数目, 若是unicode,就乘2

不知道对否?????
There is someone that is coming or passing away in your life around the clock, so you may lose sight of those seen, and forget those remembered. There is gain and loss in your life, so you may catch sight of those unseen, and remember those forgotten. Nevertheless, doesn’t the unseen exist for sure? Will the remembered remain forever?
离线cnng2008

只看该作者 8楼 发表于: 2008-03-10
当然不对,因为字串里有英文有中文
离线onglus
只看该作者 9楼 发表于: 2009-09-29
你的“当然不对”,让人匪夷所思。问:英文还不是只占一个字节吗,就用QString::length()来做就可以了。至于中文字符的问题,你就只需要判断linEdit里是否存在中文字符就可以了。我以前写过一个程序是专门用来检测键盘输入的字符是否存在中文的。这个功能函数的程序代码是:
int Judge_Chinese(char ch[100])
{
       int i,sum=0;
    
     for(i=0;ch!='\0';i++)
     {
                               if(ch<0)
                   sum++;
     }
        return(sum/2);
}
其实实现方法很简单。因为中文字符占用两个字节,你把中文字符个数乘以2,然后加上其他特殊符号的个数就可以了,这个长度就是你在文本编辑框中输入的字符总长度。
Qt高阶编程交流群71555992,进群条件是非常勿扰。
离线hiti_tony
只看该作者 10楼 发表于: 2009-09-29
qstring默认都是unicode的吧,legth*2不就行了。
快速回复
限100 字节
 
上一个 下一个