Qt 第3课、Qt 中的字符串类

1、C++ 标准库 STL

  • STL 是意义上需要与C++ 一同发布的标准库
  • STL 是一套以模板技术完成的 C++类库
  • STL 中包含了常用的算法和数据结构
  • STL 包含了字符串类

2、Qt 和 STL

  • STL 的具体实现依赖于编译器生产厂商
  • STL 的 “标准” 只是其接口是标准
    — 相同的全局函数
    — 相同的算法类和数据结构类
    — 相同的类成员函数
  • 不同厂商的编译器所带的 STL 存在差异
    — 依赖于STL 开发的 C++ 程序在不同的平台上的行为可能出现差异

3、Qt 中的字符串类

— 采用 Unicode 编码(什么国家的语言都可以)
— 隐式共享技术:节省内存和不必要的拷贝
— 跨平台使用,不要考虑字符串的平台兼容性

  • QString 直接支持字符串和数字的相互转换
  • QString 直接支持字符串的大小比较
  • QString 直接支持不同字符编码间的相互转换
  • QString 直接支持 std::stringstd::wstring
  • QString 直接支持正则表达式

4、QString 的成员函数

QString s = "xiebs"

1、s.append("123");		//字符串s后面加上123,变成xiebs123
2、s.prepend("123");	//字符串s前面加上123,变成123xiebs
3、s.replace("x","p");	//把字符串s里面的字符串x换成&,变成xieps
4、s.sprintf("%d. I'm %s,thank you!",1,"xiebs");	//带格式的转化,最终结果为1. I'm xiebs,thank you!
5int index= s.indexof("i");	//找 s 里面 i 的下标是多少,返回的是一个整数,结果为1
6、s = s.mid(0,index);		//取 0 到 index 之间的子串,结果是 x,[0,index)之间的内容
一般是这样用:s = s.mid(index, s.length());			//取 index到末尾之间的子串间
7、s = s.trimmed();		//去掉字符串s前后的空格
8、s.remove(int position, int n)		//去掉字符串 s 的 position 位置开始的 n 个字符
private slots:
    void onButtonClicked()
    {
        QPushButton* btn = reinterpret_cast<QPushButton*>(sender());
        QString btnText = btn->text();

        if(btnText == "<-")
        {
            if(btnText.length() > 0)
            {
                QString editText = m_edit->text();
                editText.remove(editText.length()-1, 1);
                m_edit->setText(editText);
            }
        }
        else if(btnText == "C")
        {
            m_edit->setText("");
        }
        else if(btnText == "=")
        {

        }
        else
        {
            m_edit->setText(m_edit->text() + btnText);
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值