c语言和c++字符串分割
c语言中的我们所使用的字符串拼接函数一般多用于sscanf函数。起作用跟scanf类似,只不过输入源不同,scanf函数的输入源是stdin,而sscanf的输入源是我们指定的。sscanf的使用方法如下:
1、 读取字符串以空格为结束符
2、 有规律字符串的分割
^表示读取字符串时到此停止,其后接停止的标识符,中括号后面的符号是其间隔作用表示第二个字符串,第三个字符串且从‘-’,‘/’,‘,’,后面开始读取。
3、 读取指定长度的字符串
4、 跳过读取后面字符串
5、 读取指定位置的字符串
6、无规则字符串读取
c++中我们进行字符串分割,一般是将其转换为Qstring类型的字符串,然后利用section或者是splite来实现的。
section的用法规则:取字符串中的一个多个数据作为标识符,来进行字符串分割。
单个字符做间隔时使用
QString QString::section ( QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault ) const
SectionDefault:计算空字符串。
一个字符串做间隔时使用
QString QString::section (const QString & sep, int start, int end =-1, SectionFlags flags = SectionDefault ) const
间隔规则是正则表达式时使用
QString QString::section (const QRegExp & reg, int start, int end =-1, SectionFlags flags = SectionDefault ) const
splite的用法规则:取一个或多个字符做间隔,来分割字符串
单个字符去做间隔符
QStringList split(const QChar &sep, SplitBehavior behavior = KeepEmptyParts,Qt::CaseSensitivity cs = Qt::CaseSensitive) const Q_REQUIRED_RESULT;
字符串做间隔符
QStringList split(const QString &sep, SplitBehavior behavior = KeepEmptyParts,Qt::CaseSensitivity cs = Qt::CaseSensitive) const Q_REQUIRED_RESULT;
分割规则使用正则表达式
QStringList split(const QRegExp &sep, SplitBehavior behavior = KeepEmptyParts) const Q_REQUIRED_RESULT;
例
QString str;
QStringList list;
str = “Some text\n\twith strange whitespace.”;
list = str.split(QRegExp("\s+"));
// list: [ "Some text with ", “trange white”, “pace.” ]