QByteArray
在Qt中
QByteArray
可以看做是c語言中char*
的升級版本。我們在使用這種類型的時候可通過這個類的構造函數申請一塊動態內存,用於存儲我們需要處理的字符串數據。下面給大家介紹一下這個類中常用的一些API函數,
大家要養成遇到問題主動查詢幫助文檔的好習慣
-
構造函數
// 構造空對象, 里邊沒有數據 QByteArray::QByteArray(); // 將data中的size個字符進行構造, 得到一個字節數組對象 // 如果 size==-1 函數內部自動計算字符串長度, 計算方式為: strlen(data) QByteArray::QByteArray(const char *data, int size = -1); // 構造一個長度為size個字節, 並且每個字節值都為ch的字節數組 QByteArray::QByteArray(int size, char ch);
-
數據操作
// 在尾部追加數據 // 其他重載的同名函數可參考Qt幫助文檔, 此處略 QByteArray &QByteArray::append(const QByteArray &ba); void QByteArray::push_back(const QByteArray &other); // 頭部添加數據 // 其他重載的同名函數可參考Qt幫助文檔, 此處略 QByteArray &QByteArray::prepend(const QByteArray &ba); void QByteArray::push_front(const QByteArray &other); // 插入數據, 將ba插入到數組第 i 個字節的位置(從0開始) // 其他重載的同名函數可參考Qt幫助文檔, 此處略 QByteArray &QByteArray::insert(int i, const QByteArray &ba); // 刪除數據 // 從大字符串中刪除len個字符, 從第pos個字符的位置開始刪除 QByteArray &QByteArray::remove(int pos, int len); // 從字符數組的尾部刪除 n 個字節 void QByteArray::chop(int n); // 從字節數組的 pos 位置將數組截斷 (前邊部分留下, 后邊部分被刪除) void QByteArray::truncate(int pos); // 將對象中的數據清空, 使其為null void QByteArray::clear(); // 字符串替換 // 將字節數組中的 子字符串 before 替換為 after // 其他重載的同名函數可參考Qt幫助文檔, 此處略 QByteArray &QByteArray::replace(const QByteArray &before, const QByteArray &after);
-
子字符串查找和判斷
// 判斷字節數組中是否包含子字符串 ba, 包含返回true, 否則返回false bool QByteArray::contains(const QByteArray &ba) const; bool QByteArray::contains(const char *ba) const; // 判斷字節數組中是否包含子字符 ch, 包含返回true, 否則返回false bool QByteArray::contains(char ch) const; // 判斷字節數組是否以字符串 ba 開始, 是返回true, 不是返回false bool QByteArray::startsWith(const QByteArray &ba) const; bool QByteArray::startsWith(const char *ba) const; // 判斷字節數組是否以字符 ch 開始, 是返回true, 不是返回false bool QByteArray::startsWith(char ch) const; // 判斷字節數組是否以字符串 ba 結尾, 是返回true, 不是返回false bool QByteArray::endsWith(const QByteArray &ba) const; bool QByteArray::endsWith(const char *ba) const; // 判斷字節數組是否以字符 ch 結尾, 是返回true, 不是返回false bool QByteArray::endsWith(char ch) const;
-
遍歷
// 使用迭代器 iterator QByteArray::begin(); iterator QByteArray::end(); // 使用數組的方式進行遍歷 // i的取值范圍 0 <= i < size() char QByteArray::at(int i) const; char QByteArray::operator[](int i) const;
-
查看字節數
// 返回字節數組對象中字符的個數 int QByteArray::length() const; int QByteArray::size() const; int QByteArray::count() const; // 返回字節數組對象中 子字符串ba 出現的次數 int QByteArray::count(const QByteArray &ba) const; int QByteArray::count(const char *ba) const; // 返回字節數組對象中 字符串ch 出現的次數 int QByteArray::count(char ch) const;
-
類型轉換
// 將QByteArray類型的字符串 轉換為 char* 類型 char *QByteArray::data(); const char *QByteArray::data() const; // int, short, long, float, double -> QByteArray // 其他重載的同名函數可參考Qt幫助文檔, 此處略 QByteArray &QByteArray::setNum(int n, int base = 10); QByteArray &QByteArray::setNum(short n, int base = 10); QByteArray &QByteArray::setNum(qlonglong n, int base = 10); QByteArray &QByteArray::setNum(float n, char f = 'g', int prec = 6); QByteArray &QByteArray::setNum(double n, char f = 'g', int prec = 6); [static] QByteArray QByteArray::number(int n, int base = 10); [static] QByteArray QByteArray::number(qlonglong n, int base = 10); [static] QByteArray QByteArray::number(double n, char f = 'g', int prec = 6); // QByteArray -> int, short, long, float, double int QByteArray::toInt(bool *ok = Q_NULLPTR, int base = 10) const; short QByteArray::toShort(bool *ok = Q_NULLPTR, int base = 10) const; long QByteArray::toLong(bool *ok = Q_NULLPTR, int base = 10) const; float QByteArray::toFloat(bool *ok = Q_NULLPTR) const; double QByteArray::toDouble(bool *ok = Q_NULLPTR) const; // std::string -> QByteArray [static] QByteArray QByteArray::fromStdString(const std::string &str); // QByteArray -> std::string std::string QByteArray::toStdString() const; // 所有字符轉換為大寫 QByteArray QByteArray::toUpper() const; // 所有字符轉換為小寫 QByteArray QByteArray::toLower() const;