Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

Q3CString Class Reference

The Q3CString class provides an abstraction of the classic C zero-terminated char array (char *). More...

 #include <Q3CString>

This class is part of the Qt 3 support library. It is provided to keep old source code working. We strongly advise against using it in new code. See Porting to Qt 4 for more information.

Inherits: QByteArray.

Note: All functions in this class are reentrant.

Public Functions

Q3CString ()
Q3CString ( int size )
Q3CString ( const Q3CString & s )
Q3CString ( const QByteArray & ba )
Q3CString ( const char * str )
Q3CString ( const char * str, uint maxsize )
Q3CString & append ( const char * str )
Q3CString copy () const
Q3CString leftJustify ( uint width, char fill = ' ', bool truncate = false ) const
Q3CString lower () const
Q3CString rightJustify ( uint width, char fill = ' ', bool truncate = false ) const
bool setExpand ( uint index, char c )
Q3CString & setNum ( double n, char f = 'g', int prec = 6 )
Q3CString & setNum ( long n )
Q3CString & setNum ( ulong n )
Q3CString & setNum ( int n )
Q3CString & setNum ( uint n )
Q3CString & setNum ( short n )
Q3CString & setNum ( ushort n )
Q3CString & setNum ( float n, char f = 'g', int prec = 6 )
Q3CString & setStr ( const char * str )
Q3CString simplifyWhiteSpace () const
Q3CString & sprintf ( const char * format, ... )
Q3CString stripWhiteSpace () const
double toDouble ( bool * ok = 0 ) const
float toFloat ( bool * ok = 0 ) const
int toInt ( bool * ok = 0 ) const
long toLong ( bool * ok = 0 ) const
short toShort ( bool * ok = 0 ) const
uint toUInt ( bool * ok = 0 ) const
ulong toULong ( bool * ok = 0 ) const
ushort toUShort ( bool * ok = 0 ) const
Q3CString upper () const
Q3CString & operator= ( const Q3CString & s )
Q3CString & operator= ( const QByteArray & ba )
Q3CString & operator= ( const char * str )

Related Non-Members

bool operator!= ( const Q3CString & s1, const char * s2 )
bool operator!= ( const char * s1, const Q3CString & s2 )
bool operator!= ( const Q3CString & s1, const Q3CString & s2 )
const Q3CString operator+ ( const Q3CString & s1, const char * s2 )
const Q3CString operator+ ( const char * s1, const Q3CString & s2 )
const Q3CString operator+ ( const Q3CString & s, char c )
const Q3CString operator+ ( char c, const Q3CString & s )
const Q3CString operator+ ( const Q3CString & s1, const Q3CString & s2 )
bool operator< ( const Q3CString & s1, const char * s2 )
bool operator< ( const char * s1, const Q3CString & s2 )
QDataStream & operator<< ( QDataStream & s, const Q3CString & str )
bool operator<= ( const Q3CString & s1, const char * s2 )
bool operator<= ( const char * s1, const Q3CString & s2 )
bool operator== ( const Q3CString & s1, const char * s2 )
bool operator== ( const char * s1, const Q3CString & s2 )
bool operator== ( const Q3CString & s1, const Q3CString & s2 )
bool operator> ( const Q3CString & s1, const char * s2 )
bool operator> ( const char * s1, const Q3CString & s2 )
bool operator>= ( const Q3CString & s1, const char * s2 )
bool operator>= ( const char * s1, const Q3CString & s2 )
QDataStream & operator>> ( QDataStream & s, Q3CString & str )

Additional Inherited Members

  • 9 static public members inherited from QByteArray

Detailed Description

The Q3CString class provides an abstraction of the classic C zero-terminated char array (char *).

Q3CString tries to behave like a more convenient const char *. The price of doing this is that some algorithms will perform badly. For example, append() is O(length()) since it scans for a null terminator. Although you might use Q3CString for text that is never exposed to the user, for most purposes, and especially for user-visible text, you should use QString. QString provides implicit sharing, Unicode and other internationalization support, and is well optimized.

Note that for the Q3CString methods that take a const char * parameter the const char * must either be 0 (null) or not-null and '\0' (NUL byte) terminated; otherwise the results are undefined.

A default constructed Q3CString is null, i.e. both the length and the data pointer are 0 and isNull() returns true.

Note: However, if you ask for the data pointer of a null Q3CString by calling data(), then because the internal representation of the null Q3CString is shared, it will be detached and replaced with a non-shared, empty representation, a non-null data pointer will be returned, and subsequent calls to isNull() will return false. But if you ask for the data pointer of a null Q3CString by calling constData(), the shared internal representation is not detached, a null data pointer is returned, and subsequent calls to isNull() will continue to return true.

A Q3CString that references the empty string ("", a single '\0' char) is empty, i.e. isEmpty() returns true. Both null and empty Q3CStrings are legal parameters to the methods. Assigning const char * 0 to Q3CString produces a null Q3CString.

The length() function returns the length of the string; resize() resizes the string and truncate() truncates the string. A string can be filled with a character using fill(). Strings can be left or right padded with characters using leftJustify() and rightJustify(). Characters, strings and regular expressions can be searched for using find() and findRev(), and counted using contains().

Strings and characters can be inserted with insert() and appended with append(). A string can be prepended with prepend(). Characters can be removed from the string with remove() and replaced with replace().

Portions of a string can be extracted using left(), right() and mid(). Whitespace can be removed using stripWhiteSpace() and simplifyWhiteSpace(). Strings can be converted to uppercase or lowercase with upper() and lower() respectively.

Strings that contain numbers can be converted to numbers with toShort(), toInt(), toLong(), toULong(), toFloat() and toDouble(). Numbers can be converted to strings with setNum().

Many operators are overloaded to work with Q3CStrings. Q3CString also supports some more obscure functions, e.g. sprintf(), setStr() and setExpand().

Note on Character Comparisons

In Q3CString the notion of uppercase and lowercase and of which character is greater than or less than another character is locale dependent. This affects functions which support a case insensitive option or which compare or lowercase or uppercase their arguments. Case insensitive operations and comparisons will be accurate if both strings contain only ASCII characters. (If $LC_CTYPE is set, most Unix systems do "the right thing".) Functions that this affects include contains(), find(), findRev(), operator<(), operator<=(), operator>(), operator>=(), lower() and upper().

This issue does not apply to QStrings since they represent characters using Unicode.

Performance note: The Q3CString methods for QRegExp searching are implemented by converting the Q3CString to a QString and performing the search on that. This implies a deep copy of the Q3CString data. If you are going to perform many QRegExp searches on a large Q3CString, you will get better performance by converting the Q3CString to a QString yourself, and then searching in the QString.

Member Function Documentation

Q3CString::Q3CString ()

Constructs a null string.

See also isNull().

Q3CString::Q3CString ( int size )

Constructs a string with room for size characters, including the '\0'-terminator. Makes a null string if size == 0.

If size > 0, then the first and last characters in the string are initialized to '\0'. All other characters are uninitialized.

See also resize() and isNull().

Q3CString::Q3CString ( const Q3CString & s )

Constructs a shallow copy s.

Q3CString::Q3CString ( const QByteArray & ba )

Constructs a copy of ba.

Q3CString::Q3CString ( const char * str )

Constructs a string that is a deep copy of str.

If str is 0 a null string is created.

See also isNull().

Q3CString::Q3CString ( const char * str, uint maxsize )

Constructs a string that is a deep copy of str. The copy will be at most maxsize bytes long including the '\0'-terminator.

Example:

 Q3CString str("helloworld", 6); // assigns "hello" to str

If str contains a 0 byte within the first maxsize bytes, the resulting Q3CString will be terminated by this 0. If str is 0 a null string is created.

See also isNull().

Q3CString & Q3CString::append ( const char * str )

Appends string str to the string and returns a reference to the string. Equivalent to operator+=().

Q3CString Q3CString::copy () const

Returns a deep copy of this string.

Q3CString Q3CString::leftJustify ( uint width, char fill = ' ', bool truncate = false ) const

Returns a string of length width (plus one for the terminating '\0') that contains this string padded with the fill character.

If the length of the string exceeds width and truncate is false (the default), then the returned string is a copy of the string. If the length of the string exceeds width and truncate is true, then the returned string is a left(width).

Example:

 Q3CString s("apple");
 Q3CString t = s.leftJustify(8, '.');  // t == "apple..."

See also rightJustify().

Q3CString Q3CString::lower () const

Use QByteArray::toLower() instead.

Q3CString Q3CString::rightJustify ( uint width, char fill = ' ', bool truncate = false ) const

Returns a string of length width (plus one for the terminating '\0') that contains zero or more of the fill character followed by this string.

If the length of the string exceeds width and truncate is false (the default), then the returned string is a copy of the string. If the length of the string exceeds width and truncate is true, then the returned string is a left(width).

Example:

 Q3CString s("pie");
 Q3CString t = s.rightJustify(8, '.');  // t == ".....pie"

See also leftJustify().

bool Q3CString::setExpand ( uint index, char c )

Sets the character at position index to c and expands the string if necessary, padding with spaces.

Returns false if index was out of range and the string could not be expanded; otherwise returns true.

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

Sets the string to the string representation of the number n and returns a reference to the string.

The format of the string representation is specified by the format character f, and the precision (number of digits after the decimal point) is specified with prec.

The valid formats for f are 'e', 'E', 'f', 'g' and 'G'. The formats are the same as for sprintf(); they are explained in QString::arg().

Q3CString & Q3CString::setNum ( long n )

This is an overloaded function.

Sets the string to the string representation of the number n and returns a reference to the string.

Q3CString & Q3CString::setNum ( ulong n )

This is an overloaded function.

Sets the string to the string representation of the number n and returns a reference to the string.

Q3CString & Q3CString::setNum ( int n )

This is an overloaded function.

Sets the string to the string representation of the number n and returns a reference to the string.

Q3CString & Q3CString::setNum ( uint n )

This is an overloaded function.

Sets the string to the string representation of the number n and returns a reference to the string.

Q3CString & Q3CString::setNum ( short n )

This is an overloaded function.

Sets the string to the string representation of the number n and returns a reference to the string.

Q3CString & Q3CString::setNum ( ushort n )

This is an overloaded function.

Sets the string to the string representation of the number n and returns a reference to the string.

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

This is an overloaded function.

Q3CString & Q3CString::setStr ( const char * str )

Makes a deep copy of str. Returns a reference to the string.

Q3CString Q3CString::simplifyWhiteSpace () const

Use QByteArray::simplified() instead.

Q3CString & Q3CString::sprintf ( const char * format, ... )

Implemented as a call to the native vsprintf() (see the manual for your C library).

If the string is shorter than 256 characters, this sprintf() calls resize(256) to decrease the chance of memory corruption. The string is resized back to its actual length before sprintf() returns.

Example:

 Q3CString s;
 s.sprintf("%d - %s", 1, "first");                // result < 256 chars

 Q3CString big(25000);                        // very long string
 big.sprintf("%d - %s", 2, longString);        // result < 25000 chars

Warning: All vsprintf() implementations will write past the end of the target string (*this) if the format specification and arguments happen to be longer than the target string, and some will also fail if the target string is longer than some arbitrary implementation limit.

Giving user-supplied arguments to sprintf() is risky: Sooner or later someone will paste a huge line into your application.

Q3CString Q3CString::stripWhiteSpace () const

Use QByteArray::trimmed() instead.

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

Returns the string converted to a double value.

If ok is not 0: *ok is set to false if the string is not a number, or if it has trailing garbage; otherwise *ok is set to true.

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

Returns the string converted to a float value.

If ok is not 0: *ok is set to false if the string is not a number, or if it has trailing garbage; otherwise *ok is set to true.

int Q3CString::toInt ( bool * ok = 0 ) const

Returns the string converted to a int value.

If ok is not 0: *ok is set to false if the string is not a number, or if it has trailing garbage; otherwise *ok is set to true.

long Q3CString::toLong ( bool * ok = 0 ) const

Returns the string converted to a long value.

If ok is not 0: *ok is set to false if the string is not a number, or if it has trailing garbage; otherwise *ok is set to true.

short Q3CString::toShort ( bool * ok = 0 ) const

Returns the string converted to a short value.

If ok is not 0: *ok is set to false if the string is not a number, is out of range, or if it has trailing garbage; otherwise *ok is set to true.

uint Q3CString::toUInt ( bool * ok = 0 ) const

Returns the string converted to an unsigned int value.

If ok is not 0: *ok is set to false if the string is not a number, or if it has trailing garbage; otherwise *ok is set to true.

ulong Q3CString::toULong ( bool * ok = 0 ) const

Returns the string converted to an unsigned long value.

If ok is not 0: *ok is set to false if the string is not a number, or if it has trailing garbage; otherwise *ok is set to true.

ushort Q3CString::toUShort ( bool * ok = 0 ) const

Returns the string converted to an unsigned short value.

If ok is not 0: *ok is set to false if the string is not a number, is out of range, or if it has trailing garbage; otherwise *ok is set to true.

Q3CString Q3CString::upper () const

Use QByteArray::toUpper() instead.

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

Assigns a shallow copy of s to this string and returns a reference to this string.

Q3CString & Q3CString::operator= ( const QByteArray & ba )

Assigns byte array ba to this Q3CString.

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

This is an overloaded function.

Assigns a deep copy of str to this string and returns a reference to this string.

If str is 0 a null string is created.

See also isNull().

Related Non-Members

bool operator!= ( const Q3CString & s1, const char * s2 )

This is an overloaded function.

Returns true if s1 and s2 are different; otherwise returns false.

Equivalent to qstrcmp(s1, s2) != 0.

bool operator!= ( const char * s1, const Q3CString & s2 )

This is an overloaded function.

Returns true if s1 and s2 are different; otherwise returns false.

Equivalent to qstrcmp(s1, s2) != 0.

bool operator!= ( const Q3CString & s1, const Q3CString & s2 )

Returns true if s1 and s2 are different; otherwise returns false.

Equivalent to qstrcmp(s1, s2) != 0.

const Q3CString operator+ ( const Q3CString & s1, const char * s2 )

This is an overloaded function.

Returns a string which consists of the concatenation of s1 and s2.

const Q3CString operator+ ( const char * s1, const Q3CString & s2 )

This is an overloaded function.

Returns a string which consists of the concatenation of s1 and s2.

const Q3CString operator+ ( const Q3CString & s, char c )

This is an overloaded function.

Returns a string which consists of the concatenation of s and c.

const Q3CString operator+ ( char c, const Q3CString & s )

This is an overloaded function.

Returns a string which consists of the concatenation of c and s.

const Q3CString operator+ ( const Q3CString & s1, const Q3CString & s2 )

Returns a string which consists of the concatenation of s1 and s2.

bool operator< ( const Q3CString & s1, const char * s2 )

Returns true if s1 is less than s2; otherwise returns false.

Equivalent to qstrcmp(s1, s2) < 0.

bool operator< ( const char * s1, const Q3CString & s2 )

This is an overloaded function.

Returns true if s1 is less than s2; otherwise returns false.

Equivalent to qstrcmp(s1, s2) < 0.

QDataStream & operator<< ( QDataStream & s, const Q3CString & str )

Writes string str to the stream s.

See also Format of the QDataStream operators.

bool operator<= ( const Q3CString & s1, const char * s2 )

Returns true if s1 is less than or equal to s2; otherwise returns false.

Equivalent to qstrcmp(s1, s2) <= 0.

bool operator<= ( const char * s1, const Q3CString & s2 )

This is an overloaded function.

Returns true if s1 is less than or equal to s2; otherwise returns false.

Equivalent to qstrcmp(s1, s2) <= 0.

bool operator== ( const Q3CString & s1, const char * s2 )

This is an overloaded function.

Returns true if s1 and s2 are equal; otherwise returns false.

Equivalent to qstrcmp(s1, s2) == 0.

bool operator== ( const char * s1, const Q3CString & s2 )

This is an overloaded function.

Returns true if s1 and s2 are equal; otherwise returns false.

Equivalent to qstrcmp(s1, s2) == 0.

bool operator== ( const Q3CString & s1, const Q3CString & s2 )

Returns true if s1 and s2 are equal; otherwise returns false.

Equivalent to qstrcmp(s1, s2) == 0.

bool operator> ( const Q3CString & s1, const char * s2 )

Returns true if s1 is greater than s2; otherwise returns false.

Equivalent to qstrcmp(s1, s2) > 0.

bool operator> ( const char * s1, const Q3CString & s2 )

This is an overloaded function.

Returns true if s1 is greater than s2; otherwise returns false.

Equivalent to qstrcmp(s1, s2) > 0.

bool operator>= ( const Q3CString & s1, const char * s2 )

Returns true if s1 is greater than or equal to s2; otherwise returns false.

Equivalent to qstrcmp(s1, s2) >= 0.

bool operator>= ( const char * s1, const Q3CString & s2 )

This is an overloaded function.

Returns true if s1 is greater than or equal to s2; otherwise returns false.

Equivalent to qstrcmp(s1, s2) >= 0.

QDataStream & operator>> ( QDataStream & s, Q3CString & str )

Reads a string into str from the stream s.

See also Format of the QDataStream operators.

Publicité

Best Of

Actualités les plus lues

Semaine
Mois
Année
  1. Microsoft ouvre aux autres compilateurs C++ AMP, la spécification pour la conception d'applications parallèles C++ utilisant le GPU 22
  2. Les développeurs ignorent-ils trop les failles découvertes dans leur code ? Prenez-vous en compte les remarques des autres ? 17
  3. RIM : « 13 % des développeurs ont gagné plus de 100 000 $ sur l'AppWord », Qt et open-source au menu du BlackBerry DevCon Europe 0
  4. « Quelque chose ne va vraiment pas avec les développeurs "modernes" », un développeur à "l'ancienne" critique la multiplication des bibliothèques 12
  5. BlackBerry 10 : premières images du prochain OS de RIM qui devrait intégrer des widgets et des tuiles inspirées de Windows Phone 0
  6. Adieu qmake, bienvenue qbs : Qt Building Suite, un outil déclaratif et extensible pour la compilation de projets Qt 17
  7. Quelles nouveautés de C++11 Visual C++ doit-il rapidement intégrer ? Donnez-nous votre avis 10
Page suivante

Le Qt Developer Network au hasard

Logo

Compiler l'add-in Qt de Visual Studio

Le Qt Developer Network est un réseau de développeurs Qt anglophone, où ils peuvent partager leur expérience sur le framework. Lire l'article.

Communauté

Ressources

Liens utiles

Contact

  • Vous souhaitez rejoindre la rédaction ou proposer un tutoriel, une traduction, une question... ? Postez dans le forum Contribuez ou contactez-nous par MP ou par email (voir en bas de page).

Qt dans le magazine

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 4.7
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
 
 
 
 
Partenaires

Hébergement Web