Qt5.14.2版本中QString的用法(最新版)

Qt QString用法总结 最近在生产中很多地方需要用到QString这个类,相当于C++中STL的String,两个用法相近;我下面会按照官方文档的说明,总结我遇到的有关QString的问题。 QString简介 在官方文档的翻译中,QString类提供了一种以Unicode编码的字符串。QString存储了一串16位的QChar,其中每个QChar对应到的是一个Unicode4.0的字符(Unicode编码值大于65536的值需要两个连续的QChar来存储(使用代理对存储))。 这里我们可以把QString理解为stri 阅读详情

看了之前大牛写的博客,发现很多函数方法在当前版本迭代中失效了,有的直接删掉,有的更新换名字了。今天写了半个下午,把常用的都整理好了。太累了~

1、QString构造函数

    QString str("hello");
    QString str = QString("hello");	//效率不高,一般配用正则表达式.arg()
    QString str = "hello";

2、添加字符(串) / append

//原型
    inline QT_ASCII_CAST_WARN QString &append(const char *s)
    { return append(QString::fromUtf8(s)); }
//示例
	QString  str("hello world");
    str.append("!!!");
    qDebug() << str;		//"hello world!!!"

3、添加字符(串) / +=

//原型
    inline QT_ASCII_CAST_WARN QString &operator+=(const char *s)
    { return append(QString::fromUtf8(s)); }
//示例
    QString  str("hello");
    str +=  " world";
    qDebug() << str;		//"hello world"

4、插入字符(串) / insert

//原型
    inline QT_ASCII_CAST_WARN QString &insert(int i, const char *s)
    { return insert(i, QString::fromUtf8(s)); }
//示例
    QString  str("hello world!");
    str.insert(str.length()-1," I like it ");
    qDebug() << str;		//"hello world I like it!"

5、判断是否为空、NULL

	str.isNull();
    str.isEmpty();
    QString str;
    qDebug() << str.isNull() << str.isEmpty();	//true true
    QString str("");
    qDebug() << str.isNull() << str.isEmpty();	//false true

6、数字 -> 字符串 / QString::number

//原型
    static QString number(int, int base=10);
    static QString number(uint, int base=10);
    static QString number(long, int base=10);
    static QString number(ulong, int base=10);
    static QString number(qlonglong, int base=10);
    static QString number(qulonglong, int base=10);
    static QString number(double, char f='g', int prec=6);
    //默认base = 10,说明是十进制转换, base在[2,36]之间
//示例
    int data = 2020;
    QString  str = QString::number(data);
    qDebug() << str;		//"2020"

7、字符串 -> 数字 / toInt、toDouble、toFloat

//部分原型
	short  toShort(bool *ok=nullptr, int base=10) const;
    ushort toUShort(bool *ok=nullptr, int base=10) const;
    int toInt(bool *ok=nullptr, int base=10) const;
    uint toUInt(bool *ok=nullptr, int base=10) const;
    long toLong(bool *ok=nullptr, int base=10) const;
    ulong toULong(bool *ok=nullptr, int base=10) const;
    qlonglong toLongLong(bool *ok=nullptr, int base=10) const;
    qulonglong toULongLong(bool *ok=nullptr, int base=10) const;
    float toFloat(bool *ok=nullptr) const;
    double toDouble(bool *ok=nullptr) const;
    //默认base = 10,说明是十进制转换, base在[2,36]之间
//示例
    QString  str("2020");
    int data = str.toInt();
    std::cout << data << std::endl;		//2020

    QString  str("2020.323232");
    int data = str.toInt();
    std::cout << data << std::endl;		//0

8、字符串长度 / length

//原型
	inline int QString::length() const
	{ return d->size; }
//示例
//其一
    QString str("hello qt5!!!");
    qDebug() << QString::number(str.length());		//"12"
//其二,根据原型返回值
	QString str("hello qt5!!!");
    qDebug() << QString::number(str.size());		//"12"

9、索引下标 / .at()

//原型
	inline const QChar QString::at(int i) const
	{ Q_ASSERT(uint(i) < uint(size())); return QChar(d->data()[i]); }
	inline const QChar QString::operator[](int i) const
	{ Q_ASSERT(uint(i) < uint(size())); return QChar(d->data()[i]); }
//示例
    QString str("hello qt5!!!");
//其一
    qDebug() << str.at(3) << str.at(4) << str.at(5);		//'l' 'o' ' '
//其二,效率没有其一好
    qDebug() << str[3] << str[4] << str[5];		//'l' 'o' ' '

10、字符(串)比较 / compare

//示例
    int index = QString::compare("acghjh","b");
    qDebug() << QString::number(index);		//"-1"
    
    int index = QString::compare("acghjh","s");
    qDebug() << QString::number(index);		//"-18"
    //多检验几遍就会发现,其实compare就是将‘前一个字符串的第一个字符’与‘后一个字符串的第一个字符’所对应的两个ASCLL码作差并返回差值

11、常规查找字符(串) /indexOf

//原型
	Q_REQUIRED_RESULT int indexOf(QStringView s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept
    { return int(QtPrivate::findString(*this, from, s, cs)); } // ### Qt6: qsizetype
//示例
    QString  str("ghjsdsdgswsdgesddssdf");		//随意敲的
    int flag = str.indexOf("sd");		//从0开始查找
    qDebug() << QString::number(flag);		//"3"

    QString  str("ghjsdsdgswsdgesddssdf");		//随意敲的
    int flag = str.indexOf("sd",4);		//从4开始查找,具体查看原型
    qDebug() << QString::number(flag);		//"5"

	//有兴趣可以研究研究  int flag = str.indexOf("sd",-4); 的情形,并想想为什么?

12、反向查找字符(串) / lastIndexOf

//原型
    Q_REQUIRED_RESULT int lastIndexOf(QStringView s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept
    { return int(QtPrivate::lastIndexOf(*this, from, s, cs)); } // ### Qt6: qsizetype
//示例
    QString  str("ghjsdsdgswsdgesddssdf");		//随意敲的
    int flag = str.lastIndexOf("sd");
    qDebug() << QString::number(flag);		//"18"

    QString  str("ghjsdsdgswsdgesddssdf");		//随意敲的
    int flag = str.lastIndexOf("sd",-4);		//从最后的倒数第4个字符开始往前遍历
    qDebug() << QString::number(flag);		//"14"

    //同样有兴趣可以试试 int flag = str.lastIndexOf("sd",4);

13、是否包含字符串 / contains

//原型
	inline bool QString::contains(const QString &s, Qt::CaseSensitivity cs) const
	{ return indexOf(s, 0, cs) != -1; }
//示例
    QString  str("ghjsdsdgswsdgesddssdf");
    bool flag = str.contains('s');
    qDebug() << flag;		//true

14、判断开始字符 / startsWith

//示例
    QString  str("ghjsdsdgswsdgesddssdf");
    bool flag = str.startsWith("hjs");
    qDebug() << flag;		//"false"

15、指定覆盖填充 / fill

//部分原型
    QString &fill(QChar c, int size = -1);
//示例
    QString  str("hello world");
    str.fill('!');
    qDebug() << str;		//"!!!!!!!!!!!"

    QString  str("hello world");
    str.fill('!',4);
    qDebug() << str;		//"!!!!"

16、选取左边开始的 n 个字符 / left

//原型
	Q_DECL_CONSTEXPR QLatin1String left(int n) const
    { return Q_ASSERT(n >= 0), Q_ASSERT(n <= size()), QLatin1String(m_data, n); }
//示例
    QString str("hello world!");
    QString flag = str.left(4);
    qDebug() << flag;		//"hell"

17、选取右边开始的 n 个字符 / right

//原型
	Q_DECL_CONSTEXPR QLatin1String right(int n) const
    { return Q_ASSERT(n >= 0), Q_ASSERT(n <= size()), QLatin1String(m_data + m_size - n, n); }
//示例
    QString  str("hello world!!!");
    str = str.right(5);
    qDebug() << str;		//"ld!!!"

18、从中选取n个字符 / mid

//原型
	Q_DECL_CONSTEXPR QLatin1String mid(int pos) const
    { return Q_ASSERT(pos >= 0), Q_ASSERT(pos <= size()), QLatin1String(m_data + pos, m_size - pos); }
    Q_DECL_CONSTEXPR QLatin1String mid(int pos, int n) const
    { return Q_ASSERT(pos >= 0), Q_ASSERT(n >= 0), Q_ASSERT(pos + n <= size()), QLatin1String(m_data + pos, n); }
//示例
    QString  str("hello world!!!");
    str = str.mid(3);		//从下标为3开始选取全部
    qDebug() << str;		//"lo world!!!"

    QString  str("hello world!!!");
    str = str.mid(3,6);		//从下标为3开始选取6个字符
    qDebug() << str;		//"lo wor"

19、英文大小写转换 / toLower、toUpper

//原型
	QChar toLower() const { return QChar(*this).toLower(); }
	QChar toUpper() const { return QChar(*this).toUpper(); }
//示例
    QString str("Hello World!");
    str = str.toLower();
    qDebug() << str;		//"hello world!"
    str = str.toUpper();
    qDebug() << str;		//"HELLO WORLD!"

20、消除两端空白字符 / trimmed

//原型
	Q_REQUIRED_RESULT QLatin1String trimmed() const noexcept 
	{ return QtPrivate::trimmed(*this); }
//示例
    QString  str("  hello world!!!  ");
    str = str.trimmed();
    qDebug() << str;		//"hello world!!!"

21、将QString根据特定符号分割成QStringList / split

//原型
	QStringList QString::split(const QString &sep, Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) const
	{ return split(sep, _sb(behavior), cs); }
	QStringList QString::split(QChar sep, Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) const
	{ return split(sep, _sb(behavior), cs); }
//示例
    QString  str("I am a boy,I am a student,I am a programmer");
    //用“,”做分隔符,‘,’也可,并且分割符不在分割后的成员中
    QStringList list = str.split(",");		
    foreach(QString temp, list)
        qDebug() << temp;
    //"I am a boy"
	//"I am a student"
	//"I am a programmer"

22、移除字符(串) / remove

//部分原型
    QString &remove(int i, int len);
    QString &remove(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive);
    QString &remove(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive);
    QString &remove(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive);
//示例
    QString  str("hello world!!!");
    str = str.remove(3,3);		//从索引为3开始,删除3个字符
    qDebug() << str;		//"helworld!!!"

    QString  str("hello world!!!");
    str = str.remove('l');		//删除所有字符‘l'
    qDebug() << str;		//"heo word!!!"

    QString  str("hello world!!!");
    str = str.remove("ll");		//删除所有字符串“ll”
    qDebug() << str;		//"heo world!!!"

23、替换字符(串) / replace

//部分原型
	QString &replace(int i, int len, QChar after);
    QString &replace(int i, int len, const QChar *s, int slen);
    QString &replace(int i, int len, const QString &after);
    QString &replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive);
    QString &replace(const QChar *before, int blen, const QChar *after, int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive);
    QString &replace(QLatin1String before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive);
    QString &replace(QLatin1String before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive);
    QString &replace(const QString &before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive);
    QString &replace(const QString &before, const QString &after,
                     Qt::CaseSensitivity cs = Qt::CaseSensitive);
    QString &replace(QChar c, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive);
    QString &replace(QChar c, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive);
//示例
    QString  str("hello world!!!");
    str = str.replace(2,2,"LL");		//索引2开始,替换两个字符,替换为“LL”
    qDebug() << str;		//"heLLo world!!!"

    QString  str("hello world!!!");
    str = str.replace("ll","LL");		//替换找到的所有的 “ll” 为 “LL”
    qDebug() << str;		//"heLLo world!!!"

24、正则表达式 / .arg()

//部分原型
    Q_REQUIRED_RESULT QString arg(const QString &a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const;
//示例
    QString  str = QString("I am a good %1,and I like a %2 in my college.").arg("boy").arg("girl");
    qDebug() << str;		//"I am a good boy,and I like a girl in my college."

25、···

Qt开发总结(6)——QString类 本篇将单独总结QString类。相比于C++ Std中的string来说,QString要好用的多。QString用来存储和处理字符串,其采用的是Unicode码,每个字符是一个16位的QChar(不是8位的char),所以QString同样可以处理中文字符,而且一个汉字算作一个字符。同时,QString应用了隐式共享以减少内存的使用,避免不必要的内存拷贝。 初始化 最简单和常见的QStrin... 阅读详情

相关推荐

C++ Qt QString用法详解与代码演示

作者:令狐掌门技术交流QQ群:675120140。

琅嬛福地 1361

qstring

<br />所有的QString的方法都使用const char *参数,const char *被解释为经典的C风格的以零结尾的ASCII字符串。所以const char *参数为0是合法的。如果const char *不是以零结尾的,结果是不确定的。把经典的C字符串复制到QString的函数将不会复制结尾的0字符。QString的QChar数组(可以通过unicode()返回)通常不以零结尾。如果你需要把QString传递到一个需要C的以零结尾的字符串,请使用latin1()。 <br />QStrin

xuanxiaoala的专栏 5657

手把手教你用PLECS仿真BUCK数字电源(含DSP代码实现)

本文详细介绍了如何利用PLECS仿真软件与Visual Studio 2022搭建高保真数字电源开发环境,手把手指导从BUCK电路建模、编写硬件感知的C控制算法到参数调优的全过程。重点阐述了通过DLL接口实现软件在环仿真,模拟DSP的ADC/PWM时序,并将验证后的代码无缝迁移至TI C2000系列DSP,构建从仿真到固件的完整数字电源开发闭环,显著提升开发效率与一次成功率。

oo7890的博客 395

【QT】QString类型中,Empty和NULL有什么区别在qt里,对比C#

两者效果是一样的,都会创建一个不包含任何字符的空字符串。在实际使用中,使用默认构造函数更为常见。对象可能是空字符串,即包含零个字符,但它不是一个空指针。在 Qt 中,字符串不是通过指针来表示的,因此不存在与 C# 中的。如果需要检查指针是否为空,可以使用 C++ 中的。方法来检查字符串是否为空,而不是使用。总体而言,要检查字符串是否为空,应使用。在 Qt 的字符串处理中,通常使用。用于检查字符串是否为空。方法来检查字符串是否为空。在 Qt 中,表示一个空的。来确定字符串是否为空。

weixin_44939430的博客 2349

Wio-LR1121多频段LoRa模块技术解析与应用实践

LoRa技术作为低功耗广域物联网(LPWAN)的核心通信方案,通过独特的扩频调制技术实现远距离传输与强抗干扰能力。其工作原理基于CSS(Chirp Spread Spectrum)调制,支持动态调整扩频因子(SF)和带宽(BW)来平衡传输距离与数据速率。Wio-LR1121模块作为Semtech LR1121芯片的载体,创新性地整合了sub-GHz、S-Band和2.4GHz多频段支持,配合仅1.35μA的睡眠电流,为跨境物联网部署提供了硬件基础。在智慧农业、工业监测等场景中,开发者可通过SPI接口快速集成

weixin_33742618的博客 416

HX720数据采集实战:从硬件连接到姿态解析(含避坑指南)

本文详细介绍了HX720高精度ADC芯片在数据采集与姿态解析项目中的实战应用。内容涵盖从硬件电路设计、驱动源码编写与优化,到原始数据处理、校准以及最终姿态角度计算的完整流程,并提供了关键的避坑指南和调试技巧,帮助开发者高效完成从传感器信号到可用姿态数据的转换。

i8j9k0l1的博客 488

QT5.14.2版本中QString、QByteArray以及中文编码

Qt中字符串常用的类型 类型 介绍 QString QString想当于std中的string,在使用时不用像char *那样担心会超出范围或者漏写一个’\0’,这一切的工作C++会帮你处理好。你只需要正确使用Qt中提供的各种方法、函数接口即可。 QByteArray 字面意思,字节数组,就比如使用char [];不同的是QByteArray返回大小时,不会考虑到最终’\0’的一个字节大小 QString、QByteArray、中文编码一、QString用法二、QByteArra.

yc__coder的博客 1855

Unreal5 从入门到精通之 学习Niagara特效系统

UE5 Niagara粒子系统解析 Niagara是UE5中的高性能粒子特效系统,相比传统粒子系统具有完全可编程性和可视化节点编辑两大特点。核心单元发射器(Emitter)分为模板发射器(预设效果如喷泉、火焰)和空白发射器(高度自定义)。系统提供13种预设模板,包括吹飞粒子、五彩纸屑爆发、动态光束等常见特效。 Niagara采用三级模块化设计: 系统级:全局参数设置与更新 发射器级:控制粒子生成规则与行为 粒子级:处理单个粒子的生命周期和渲染 关键模块包括初始化粒子属性、物理模拟、颜色渐变等,支持GPU加速

TxNet 1124

Qt5 中的字符串详解

Qt5 中的字符串详解

m0_73443478的博客 431

【2025华为OD机考真题】- 简易内存池(B卷-200分)(C版)

🔔本文收录于「最新最全华为OD机试真题(C版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!专栏所写题库均精心搜集于互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验所撰,欢迎订阅。    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,后续题库更新皆可阅

**My Coding Family** 961

16、保障Azure应用安全:密钥管理与身份认证

本文深入探讨了保障Azure应用安全的关键措施,包括使用网络安全工具(如Application Gateway和Azure Front Door)防范攻击,解决传统密钥和机密存储方式的安全隐患,以及通过Azure Key Vault实现敏感信息的安全管理。同时,介绍了使用托管标识实现Azure资源间安全访问的方法,并结合实际操作步骤展示了如何配置Key Vault、设置访问策略、存储机密以及授予Web应用对SQL Server的访问权限。最后,对不同安全措施进行了比较,并提出了在开发、测试及生产环境中的综合

rock5的博客 72

QT中QString的所有类用法大全

前言 之前用到QT中QString的用法,但总是忘记,这次自己整理出来,自己想用可以随时查看,同时也可以帮助到大家。 文章目录前言一、QString与其他变量的转换1、QString::number();2、QString("%").arg();3、QString转换为 double类型4、QString转换为 float类型5、QString转换为int6、QString转换为char *7、QString转换为QByteArray二、QString类函数1.追加字符 append2.组合字符QStrin

m0_56991046的博客 5868

新能源汽车电池及充电原理详解

本文详细介绍了新能源汽车的电池包结构、铅酸电池充放电原理,以及交流和直流充电的工作原理和优缺点。内容涵盖电池串联并联原因、充电设备如车载充电机、交流充电桩和直流充电桩的介绍,以及不同充电模式的连接方式。通过对充电过程的深入探讨,有助于读者理解新能源汽车的充电技术。

让你爱上电路设计 4525

QT5.14.2 探索Qt字符串操作的奥秘:Qt的QString如何成为你的编程利器?

随着我们一同深入探索了Qt字符串操作的世界,从基础的分割与拼接到高级的格式化与大小写转换,我们见证了QString类如何以其强大的功能和灵活的API成为Qt编程中不可或缺的工具。无论是在界面显示、数据处理还是网络通信中,QString都以其高效和便捷赢得了开发者的青睐。Qt的QString,这把锋利的编程利器,将与你一同迎接未来的每一个可能。然而,这只是冰山一角。Qt的QString还有更多的奥秘等待我们去发掘,更多的挑战等待我们去征服。那么,准备好迎接更多的知识挑战了吗?

w风雨无阻w的专栏 1573

OpenClaw实战系列·进阶特辑02:多智能体协同——打造企业级AI中台

**企业级AI中台面临多Agent协同的挑战,本文提出基于多智能体协同的解决方案。通过分析单Agent的局限性(上下文溢出、专业度稀释等)和多Agent的核心优势(任务专注度、故障隔离等),提出三种协作架构模式(指挥型、联邦型、点对点型),并强调人格化设计的重要性。文章详细介绍Agent间通讯机制(同步/异步会话、文件系统协作)和"身脑分离"的解耦架构设计,提供可落地的企业级AI中台实施方案。

PeterPan的博客 494

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

QT 对QString字符串的操作

QString是QT提供的字符串类,相应的也就提供了很多很方便对字符串的处理方法。这里把这些对字符串的操作做一个整理和总结。 1. 将一个字符串追加到另一个字符串的末尾 QString str1 = "hello "; QString str2 = "world"; str1.append(str2); // str1 = "hello world" st...

Sakuya__的博客 3万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Qt之QString字符串类的详细介绍及功能函数示例用法

为了加深对Qt各个类的认识和了解,决定以后再闲暇的时间对Qt类进行详细的阅读(基于Qt cteater 的帮助文档),这样既可以提高自己的英文阅读能力,也可以对各个类有一个更加深入的认识和了解。

陈娴娴的博客 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

QT之QString 常用用法大总结

QString是Unicode字符的集合,它是Qt API中使用的字符串类。 QString的成员是QChar,QChar是一个16位Unicode字符类。大多数编译器把它看作是一个unsigned short。 QString和C标准中的字符串不同,C++原生提供两种字符串: 传统的C风格以’\0’结尾的字符数组和std::string类。与这些不同,QString使用16-bit Uni...

学之知之的博客 1万+

QT之QString的用法介绍

QT之QString的用法介绍

techenliu的博客 2591

E1696 无法打开 源 文件 “QString“

无法打开源文件 QString头文件 Qt5.14.2安装

aoxuestudy的专栏 8289

Qt QString常用转换、QString常用方法、QStringList

文章目录1、QString常用转换1.1、QString转(int、float、double)1.2、(int,float,double)转(QString)1.3、const char* 转QString1.4、 QString 转 QByteArray 转const char*1.5、QString 转QDateTime1.6、QDateTime 转QString2、常用方法2.1、拼接2.2、返回索引字符at(n)2.3、插入字符串2.4、字符串替换2.5、字符串去掉空格2.6、查询字符 starts

weixin_45715405的博客 5988

Qt Qstring字符串的查找、替换、切割操作

文章目录查找替换replace字符串切割 查找 直接上代码 #include <QtWidgets/QApplication> #include <Qstring> #include <Qdebug> #include <iostream> using namespace std; int main(int argc, char *argv[]) { QApplication a(argc, argv); QString str = "xcjasd

TT的博客 3万+

Qt学习之QString:QString常见用法

前言(来自官方文档描述)1、字符串末尾追加append()2、去除字符串头尾的空白字符trimmed()3、字符串全部转大写或者转小写4、获取字符串长度size()、length()5、替换字符串的子字符串replace()6、参数替换占位符7、分割字符串split()8、字符串比较是否一样以及区分大小写compare()9、字符串str1是否包含字符串str2:contains10、检查字符串是否以特定字符开头或结束startswith()、endswith()

海棠半载的博客 2816

Qt学习-14 <QString::arg()函数>

QString::arg()函数

Gnar_w的博客 1919

Qt C++ 5.14 QString和QByteArray部分用法

Qt C++ 5.14 QString和QByteArray部分用法

huanworld的博客 265
上一篇: 了解QT中使用的QJson
下一篇: C语言的十种排序算法
巨蟹贼香
博客等级 码龄9年 76粉丝 43原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值