从C到C++的进化过程引入了自定义类型
在C++中可以通过类完成字符串类型的定义
C++中的原生类型系统是否包含字符串类型?
STL的具体实现依赖于编译器生产厂商
STL的 “标准” 只是其接口是标准的
不同厂商的编译器所带的STL存在差异
依赖于STL开发的C++程序在不同平台上的行为可能出现差异
#include <QDebug>
void Sample_1()
{
QString s = "add";
s.append(" "); // "add "
s.append("Qt"); // "add Qt"
s.prepend(" "); // " add Qt"
s.prepend("C++"); // "C++ add Qt"
qDebug() << s;
s.replace("add", "&"); // "C++ & Qt"
qDebug() << s;
}
void Sample_2()
{
QString s = "";
int index = 0;
s.sprintf("%d. I'm %s, thank you!", 1, "Delphi Tang"); // "1. I'm Delphi Tang, thank you!"
qDebug() << s;
index = s.indexOf(",");
s = s.mid(0, index); // "1. I'm Delphi Tang"
qDebug() << s;
index = s.indexOf(".");
s = s.mid(index + 1, s.length()); // " I'm Delphi Tang"
s = s.trimmed(); // "I'm Delphi Tang"
qDebug() << s;
index = s.indexOf(" ");
s = s.mid(index + 1, s.length()); // "Delphi Tang"
qDebug() << s;
}
void Sample_3(QString* a, int len)
{
for(int i = 0; i < len; i++) {
for(int j=i+1; j<len; j++) {
if( a[j] < a[i] ) {
QString tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
}
int main()
{
qDebug() << "Sample_1:";
Sample_1();
qDebug() << endl;
qDebug() << "Sample_2:";
Sample_2();
qDebug() << endl;
qDebug() << "Sample_3:";
QString company[5] = {
QString("Oracle"),
QString("Borland"),
QString("Microsoft"),
QString("IBM"),
QString("D.T.Software")
};
Sample_3(company, 5);
for(int i = 0; i < 5; i++) {
qDebug() << company[i];
}
return 0;
}
/* QCalculatorUI.cpp */
// 之前代码中的内容
void QCalculatorUI::onButtonClicked()
{
QPushButton* btn = (QPushButton*)sender();
QString clickText = btn->text();
if ( clickText == "<-" ) {
QString text = m_edit->text();
if ( text.length() > 0 ) {
text.remove(text.length()-1, 1);
m_edit->setText(text);
}
}
else if ( clickText == "C" ) {
m_edit->setText("");
}
else if ( clickText == "=" ) {
}
else {
m_edit->setText(m_edit->text() + clickText);
}
}