日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

qstring转qchar_Qt 对QString操作

發布時間:2024/9/3 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 qstring转qchar_Qt 对QString操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本帖最后由 kylin_try 于 2014-4-2 19:58 編輯

QString QString::number ( ulong n, int base = 10 ) [靜態]

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

也可以參考setNum()。

QString QString::number ( int n, int base = 10 ) [靜態]

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

也可以參考setNum()。

QString QString::number ( uint n, int base = 10 ) [靜態]

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

一個把數字n轉換為字符串表示的方便制造函數,n被基于base表示,默認為10,并且必須在2到36之間。

也可以參考setNum()。

QString QString::number ( double n, char f = 'g', int prec = 6 ) [靜態]

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

根據fmt指定的格式,參數n被格式化,g為默認情況并且可以為下列之一:

e - 格式化為[-]9.9e[+|-]999

E - 格式化為[-]9.9E[+|-]999

f - 格式化為[-]9.9

g - 使用e或f格式,看哪一個更簡練

G - 使用E或f格式,看哪一個更簡練

在所有的情況下,小數點之后數字的個數等于prec指定的精度。

double d = 12.34;

QString ds = QString( "'E' format, precision 3, gives %1" )

.arg( d, 0, 'E', 3 );

// ds == "1.234E+001"

也可以參考setNum()。

QString::operator const char * () const

返回latin1()。請確定已經看到這里的警告文檔。注意對于你希望嚴格遵守Unicode的新代碼,當你編譯你的代碼時,你可以定義QT_NO_ASCII_CAST宏來隱藏這個函數,這樣自動拋出就不會被完成。這樣可以添加你可以抓住在operator!()下描述的編程錯誤的優點。

bool QString::operator! () const

如果它不是零字符串,返回真,否則返回假。

QString name = getName();

if ( !name )

name = "Rodney";

注意如果你這樣做

QString name = getName();

if ( name )

doSomethingWith(name);

它將調用“operator const char*()”,這是沒有效率的,當你希望寫遵守Unicode的代碼時,你可以定義QT_NO_ASCII_CAST宏。

當你想使用上述的語義時,請使用:

QString name = getName();

if ( !name.isNull() )

doSomethingWith(name);

QString & QString::operator+= ( const QString & str )

把str添加到字符串中并且返回結果的引用。

QString & QString::operator+= ( QChar c )

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

把字符c添加到字符串中并且返回結果的引用。

QString & QString::operator+= ( char c )

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

把字符c添加到字符串中并且返回結果的引用。

QString & QString::operator= ( QChar c )

設置字符串只包含單個字符c。

QString & QString::operator= ( const QString & s )

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

把s的一個淺度復制賦值給這個字符串并且返回這個字符串的引用。這是非常快的,因為字符串沒有被實際復制。

QString & QString::operator= ( const char * str )

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

把解釋為經典C字符串的str的一個深度復制賦值給這個字符串并且返回這個字符串的引用。

如果str為0,那么零字符串被創建。

也可以參考isNull()。

QString & QString::operator= ( const QCString & cs )

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

把解釋為經典C字符串的cs的一個深度復制賦值給這個字符串并且返回這個字符串的引用。

QString & QString::operator= ( char c )

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

設置字符串只包含單個字符c。

QChar QString::operator[] ( int i ) const

返回在索引i處的字符,或者如果i超過字符串的長度返回QChar::null。

如果QString不是常量(也就是const QString)或者const&(也就是const QString&),那么operator[]的非常量重載將被使用來替代它。

QCharRef QString::operator[] ( int i )

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

這個函數返回在索引i處的字符的引用。這個結果引用可以立即被賦值或者使用,但是一旦初始字符串發生了改變,它將會變為無效。

如果i超過了字符串的長度,那么字符串將會被使用QChar::null來擴展,這樣QCharRef就可以引用字符串中的有效(零)字符。

QCharRef內部類可以被常量QChar使用,但是如果你對它賦值,你就會改變初始字符串(它將會自動分離,因為QString是寫時復制)。如果你試圖把結果作為QChar以外的東西使用,你將得到編譯錯誤。

QString & QString::prepend ( const QString & s )

在字符串開始處插入s并且返回這個字符串的引用。

等于insert(0, s)。

QString string = "42";

string.prepend( "The answer is " );

// string == "The answer is 42"

也可以參考insert()。

QString & QString::prepend ( char ch )

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

在字符串開始處插入ch并且返回這個字符串的引用。

等于insert(0, ch)。

也可以參考insert()。

QString & QString::prepend ( QChar ch )

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

在字符串開始處插入ch并且返回這個字符串的引用。

等于insert(0, ch)。

也可以參考insert()。

QChar & QString::ref ( uint i )

返回在索引i的QChar的引用,如果需要就是用QChar::null擴展字符串。這個結果引用可以立即被賦值或者使用,但是一旦初始字符串發生了改變,它將會變為無效。

QString string("ABCDEF");

QChar ch = string.ref( 3 );? ?? ?? ?// ch == 'D'

也可以參考constref()。

QString & QString::remove ( uint index, uint len )

從字符串中的index位置開始移除len個字符并且返回這個字符串的引用。

如果index超出字符串的長度,就什么也不發生。如果index在字符串中間,但是index加上len超過字符串的結尾,這個字符串將從index開始被截短。

QString string( "Montreal" );

string.remove( 1, 4 );? ?? ?// string == "Meal"

也可以參考insert()和replace()。

QString & QString::replace ( uint index, uint len, const QString & s )

從字符串中的index位置開始使用s替換len個字符,并且返回這個字符串的引用。

如果index超出字符串的長度,就什么也不被刪除并且s被添加到字符串結尾。如果 index有效并且index加上len超過字符串的結尾,那么這個字符串將從index開始被截短,并且s被添加到字符串結尾。

QString string( "Say yes!" );

string = string.replace( 4, 3, "NO" );

// string == "Say NO!"

也可以參考insert()和remove()。

實例:listviews/listviews.cpp、network/networkprotocol/nntp.cpp和qmag/qmag.cpp。

QString & QString::replace ( uint index, uint len, const QChar * s, uint slen )

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

從字符串中的index位置開始使用s中的slen個字符的QChar數據替換len個字符,并且返回這個字符串的引用。

也可以參考insert()和remove()。

QString & QString::replace ( const QRegExp & rx, const QString & str )

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

用str替換字符串中出現的每一個正則表達式rx。返回這個字符串的引用。

QString string = "banana";

string = string.replace( QRegExp("an"), "" ); // string == "ba"

也可以參考find()和findRev()。

QString QString::right ( uint len ) const

返回包含字符串最右面的len個字符的子字符串。

如果len超過字符串的長度,則整個字符串被返回。

QString string( "Pineapple" );

QString t = string.right( 5 );? ?// t == "apple"

也可以參考left()、mid()和isEmpty()。

實例:fileiconview/qfileiconview.cpp。

QString QString::rightJustify ( uint width, QChar fill = ' ', bool truncate = FALSE ) const

返回一個長度為width的,包含fill填補的字符串,后面跟著這個字符串。

如果truncate為假并且字符串的長度超過width,那么返回的字符串是這個字符串的復制。

如果truncate為真并且字符串的長度超過width,那么這個字符串的復制中超過width長度的任何字符都被移除并且這個復制被返回。

QString string( "apple" );

QString t = string.rightJustify( 8, '.' );??// t == "...apple"

也可以參考leftJustify()。

QString QString::section ( QChar sep, int start, int end = 0xffffffff, int flags = SectionDefault ) const

這個函數用來返回字符串的一部分。

這個字符串被看作由字符sep分隔開的順序的區段。返回的從位置start到位置end(兩個都包含)的區段組成的字符串。如果end沒有被指定,那么從位置start開始到字符串的結尾的所有區段都被返回。區段是從左面是0、1、2等等計數,或者從右面-1、-2等等計數的。

flags參數可以用來影響這個函數行為的特征,例如是否區分大小寫,是否忽略空區段并且如何處理開始和結尾的分隔符,請參考SectionFlags。

QString csv( "forename,middlename,surname,phone" );

QString s = csv.section( ',', 2, 2 );? ?// s == "surname"

QString path( "/usr/local/bin/myapp" ); // First field is empty

QString s = path.section( '/', 3, 4 );??// s == "bin/myapp"

QString s = path.section( '/', 3, 3, SectionSkipEmpty ); // s == "myapp"

如果start或者end為負數,我們就從字符串的右面開始計數,最右面的是-1,接著是-2,依此類推。

QString csv( "forename,middlename,surname,phone" );

QString s = csv.section( ',', -3, -2 );??// s == "middlename,surname"

QString path( "/usr/local/bin/myapp" ); // First field is empty

QString s = path.section( '/', -1 ); // s == "myapp"

也可以參考QStringList::split()。

實例:chart/element.cpp。

QString QString::section ( char sep, int start, int end = 0xffffffff, int flags = SectionDefault ) const

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

QString QString::section ( const char * sep, int start, int end = 0xffffffff, int flags = SectionDefault ) const

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

QString QString::section ( const QString & sep, int start, int end = 0xffffffff, int flags = SectionDefault ) const

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

這個函數用來返回字符串的一部分。

這個字符串被看作由字符串sep分隔開的順序的區段。返回的從位置start到位置end(兩個都包含)的區段組成的字符串。如果end沒有被指定,那么從位置start開始到字符串的結尾的所有區段都被返回。區段是從左面是0、1、2等等計數,或者從右面-1、-2等等計數的。

flags參數可以用來影響這個函數行為的特征,例如是否區分大小寫,是否忽略空區段并且如何處理開始和結尾的分隔符,請參考SectionFlags。

QString data( "forename**middlename**surname**phone" );

QString s = data.section( "**", 2, 2 ); // s == "surname"

如果start或者end為負數,我們就從字符串的右面開始計數,最右面的是-1,接著是-2,依此類推。

QString data( "forename**middlename**surname**phone" );

QString s = data.section( "**", -3, -2 ); // s == "middlename**surname"

也可以參考QStringList::split()。

QString QString::section ( const QRegExp & reg, int start, int end = 0xffffffff, int flags = SectionDefault ) const

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

這個函數用來返回字符串的一部分。

這個字符串被看作由正則表達式reg分隔開的順序的區段。返回的從位置start到位置end(兩個都包含)的區段組成的字符串。如果end沒有被指定,那么從位置start開始到字符串的結尾的所有區段都被返回。區段是從左面是0、1、2等等計數,或者從右面-1、-2等等計數的。

flags參數可以用來影響這個函數行為的特征,例如是否區分大小寫,是否忽略空區段并且如何處理開始和結尾的分隔符,請參考SectionFlags。

QString line( "forename\tmiddlename??surname \t \t phone" );

QRegExp sep( "\s+" );

QString s = line.section( sep, 2, 2 ); // s == "surname"

如果start或者end為負數,我們就從字符串的右面開始計數,最右面的是-1,接著是-2,依此類推。

QString line( "forename\tmiddlename??surname \t \t phone" );

QRegExp sep( "\\s+" );

QString s = line.section( sep, -3, -2 ); // s == "middlename??surname"

警告: QRegExp這一部分比其它字符串和字符的重載版本要花費更多。

也可以參考QStringList::split()和simplifyWhiteSpace()。

void QString::setExpand ( uint index, QChar c )

這個函數是廢棄的。它的提供只是為了保證舊代碼能夠工作。我們強烈建議在新代碼中不要使用它。

設置在index位置的字符為c并且如果需要使用空格來擴展這個字符串。

這個方法在Qt 3.x中是多余的,因為operator[]可以在需要的時候擴展字符串。

QString & QString::setLatin1 ( const char * str, int len = -1 )

設置這個字符串為解釋為經典的Latin1的C字符串的str。如果len為-1(默認),那么它將被設置為strlen(str)。

如果str為0,那么零字符串被創建。如果str為“”,那么空字符串被創建。

也可以參考isNull()和isEmpty()。

void QString::setLength ( uint newLen )

確保至少newLen個字符被分配給這個字符串,并且設置這個字符串的長度為newLen。任何分配的新空間保留任意的數據。

如果newLen為0,那么這個字符串將變為空,除非這個字符串是零,這種情況下它仍保持為零。

如果不能分配足夠的內存,字符串保持不變。

這個函數總是把這個字符串和有同樣數據的其它引用分離。

這個函數對于需要構建一個長字符創并且想避免重復重新分配空間的代碼很有用。在這個實例中,我們想添加字符串,直到條件為真,并且我們十分確信分配給它的大小是足夠大的:

QString result;

int resultLength = 0;

result.setLength( newLen ) // 分配一些空間

while ( ... ) {

result[resultLength++] = ... // 填充(部分的)空格作為數據

}

result.truncate[resultLength]; // 并且去掉不確定的垃圾

如果newLen是不足的話,最壞的情況就是將會循環將會變慢。

也可以參考truncate()、isNull()、isEmpty()和length()。

QString & QString::setNum ( long n, int base = 10 )

設置字符串為打印的數據n,n是基于base并且返回這個字符串的引用。

base默認為10并且必須在2到36之間。

QString string;

string = string.setNum( 1234 );? ???// string == "1234"

QString & QString::setNum ( short n, int base = 10 )

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。設置字符串為打印的數據n,n是基于base并且返回這個字符串的引用。

base默認為10并且必須在2到36之間。

QString & QString::setNum ( ushort n, int base = 10 )

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。設置字符串為打印的數據n,n是基于base并且返回這個字符串的引用。

base默認為10并且必須在2到36之間。

QString & QString::setNum ( int n, int base = 10 )

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。設置字符串為打印的數據n,n是基于base并且返回這個字符串的引用。

base默認為10并且必須在2到36之間。

QString & QString::setNum ( uint n, int base = 10 )

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。設置字符串為打印的數據n,n是基于base并且返回這個字符串的引用。

base默認為10并且必須在2到36之間。

QString & QString::setNum ( ulong n, int base = 10 )

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。設置字符串為打印的數據n,n是基于base并且返回這個字符串的引用。

base默認為10并且必須在2到36之間。

QString & QString::setNum ( float n, char f = 'g', int prec = 6 )

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

設置字符串為打印的由格式f和精度prec格式化的數據n并且返回這個字符串的引用。

格式f可以為“f”、“F”、“e”、“E”、“g”或者“G”。關于這些格式的解釋請參考arg()。

QString & QString::setNum ( double n, char f = 'g', int prec = 6 )

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

設置字符串為打印的由格式f和精度prec格式化的數據n并且返回這個字符串的引用。

格式f可以為“f”、“F”、“e”、“E”、“g”或者“G”。關于這些格式的解釋請參考arg()。

QString & QString::setUnicode ( const QChar * unicode, uint len )

重新定義字符串的大小為len并且把unicode復制到字符串中。如果unicode為零,什么都不被復制,但是字符串還是被重新定義為len。如果len為0,那么字符串變為零字符串。

也可以參考setLatin1()和isNull()。

QString & QString::setUnicodeCodes ( const ushort * unicode_as_ushorts, uint len )

重新定義字符串的大小為len并且把unicode_as_ushorts復制到字符串中(在一些X11客戶端平臺上這將進入到二進制緩存通道中)。

如果unicode_as_ushorts為零,什么都不被復制,但是字符串還是被重新定義為len。如果len為0,那么字符串變為零字符串。

也可以參考setLatin1()和isNull()。

QString QString::simplifyWhiteSpace () const

返回一個移除了這個字符串的開始和結尾的空白符號的字符串,并且內部的空白符號都被替代為單一的空格。

空白符號是指任何QChar::isSpace()返回真的字符。這里面包括十進制為9(TAB)、10(LF)、11(VT)、12(FF)、13(CR)和32(Space)的UNICODE字符。

QString string = "??lots\t of\nwhite? ? space ";

QString t = string.simplifyWhiteSpace();

// t == "lots of white space"

也可以參考stripWhiteSpace()。

QString & QString::sprintf ( const char * cformat, ... )

從一個格式化字符串cformat和一個任意的參數列表安全地構建一個格式化的字符串。

%s轉義序列希望一個utf8()編碼字符串。格式化字符串cformat希望是一個Latin1的。如果你需要一個Unicode格式字符串,使用arg()來替代。為了完全支持Unicode的類型安全的字符串構建,你可以像這樣使用QTextOStream:

QString str;

QString s = ...;

int x = ...;

QTextOStream( &str ) << s << " : " << x;

對于翻譯,特別是如果字符串包含超過一個的轉義序列,你應該考慮使用arg()來替代它。這將允許翻譯者來控制替換的順序并且支持Unicode。

也可以參考arg()。

實例:dclock/dclock.cpp、forever/forever.cpp、layout/layout.cpp、qmag/qmag.cpp、scrollview/scrollview.cpp、tooltip/tooltip.cpp和xform/xform.cpp。

bool QString::startsWith ( const QString & s ) const

如果字符串以s開始,返回真,否則返回假。

QString string("Bananas");

bool a = string.startsWith("Ban");? ?? ?//??a == TRUE

也可以參考endsWith()。

QString QString::stripWhiteSpace () const

返回一個移除了這個字符串的開始和結尾的空白符號的字符串,并且內部的空白符號都被替代為單一的空格。

空白符號是指任何QChar::isSpace()返回真的字符。這里面包括十進制為9(TAB)、10(LF)、11(VT)、12(FF)、13(CR)和32(Space)的UNICODE字符。

QString string = "? ?white space? ?";

QString s = string.stripWhiteSpace();? ?? ? // s == "white space"

也可以參考simplifyWhiteSpace()。

double QString::toDouble ( bool * ok = 0 ) const

返回由這個字符串轉化的double值。

如果轉化發生錯誤,*ok被設置為假(除非ok為0,這是默認的)并且0被返回。否則*ok被設置為真。

QString string( "1234.56" );

double a = string.toDouble();? ?// a == 1234.56

也可以參考number()。

float QString::toFloat ( bool * ok = 0 ) const

返回由這個字符串轉化的float值。

如果轉化發生錯誤,*ok被設置為假(除非ok為0,這是默認的)并且0被返回。否則*ok被設置為真。

也可以參考number()。

int QString::toInt ( bool * ok = 0, int base = 10 ) const

返回由這個字符串轉化的int值,是基于base的,默認為10并且必須在2到36之間。

如果轉化發生錯誤,*ok被設置為假(除非ok為0,這是默認的)并且0被返回。否則*ok被設置為真。

QString str( "FF" );

bool ok;

int hex = str.toInt( &ok, 16 );? ???// hex == 255, ok == TRUE

int dec = str.toInt( &ok, 10 );? ???// dec == 0, ok == FALSE

也可以參考number()。

long QString::toLong ( bool * ok = 0, int base = 10 ) const

返回由這個字符串轉化的long值,是基于base的,默認為10并且必須在2到36之間。

如果轉化發生錯誤,*ok被設置為假(除非ok為0,這是默認的)并且0被返回。否則*ok被設置為真。

也可以參考number()。

short QString::toShort ( bool * ok = 0, int base = 10 ) const

返回由這個字符串轉化的short值,是基于base的,默認為10并且必須在2到36之間。

如果轉化發生錯誤,*ok被設置為假(除非ok為0,這是默認的)并且0被返回。否則*ok被設置為真。

uint QString::toUInt ( bool * ok = 0, int base = 10 ) const

返回由這個字符串轉化的unsigned int值,是基于base的,默認為10并且必須在2到36之間。

如果轉化發生錯誤,*ok被設置為假(除非ok為0,這是默認的)并且0被返回。否則*ok被設置為真。

也可以參考number()。

ulong QString::toULong ( bool * ok = 0, int base = 10 ) const

返回由這個字符串轉化的unsigned long值,是基于base的,默認為10并且必須在2到36之間。

如果轉化發生錯誤,*ok被設置為假(除非ok為0,這是默認的)并且0被返回。否則*ok被設置為真。

也可以參考number()。

ushort QString::toUShort ( bool * ok = 0, int base = 10 ) const

返回由這個字符串轉化的unsigned short值,是基于base的,默認為10并且必須在2到36之間。

如果轉化發生錯誤,*ok被設置為假(除非ok為0,這是默認的)并且0被返回。否則*ok被設置為真。

void QString::truncate ( uint newLen )

如果newLen小于字符串的長度,那么字符串將從newLen位置被截短。否則就什么也不發生。

QString s = "truncate me";

s.truncate( 5 );? ?? ?? ?? ?// s == "trunc"

也可以參考setLength()。

實例:network/mail/smtp.cpp。

const QChar * QString::unicode () const

返回這個字符串的Unicode表述。直到這個字符串被修改,這個結果保持有效。

QString QString::upper () const

返回由這個字符串轉換的大寫字符串。

QString string( "TeXt" );

str = string.upper();? ???// t == "TEXT"

也可以參考lower()。

實例:scribble/scribble.cpp和sql/overview/custom1/main.cpp。

總結

以上是生活随笔為你收集整理的qstring转qchar_Qt 对QString操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。