QString Class
QString 클래스는 유니코드 문자열을 제공합니다. 더 보기...
| 헤더: | #include <QString> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
- 상속된 멤버를 포함한 모든 멤버 목록
- 사용 중단된 멤버
- QString은 ‘암시적 공유 클래스 ’ 및 ‘문자열 데이터용 클래스’에 속합니다.
참고: 이 클래스의 모든 함수는 재진입 가능합니다.
QString 비교
| 범주 | 비교 가능한 유형 | 설명 |
|---|---|---|
| strong | QString | |
| strong | QChar, QLatin1StringView, const char16_t *, QStringView 및 QUtf8StringView. | |
| strong | QByteArray, ` QByteArrayView` 및 `const char *`입니다. | 바이트 배열과 비교할 때, 해당 내용은 UTF-8로 해석됩니다. |
public 유형
| ConstIterator | |
| Iterator | |
| enum | NormalizationForm { NormalizationForm_D, NormalizationForm_C, NormalizationForm_KD, NormalizationForm_KC } |
| enum | SectionFlag { SectionDefault, SectionSkipEmpty, SectionIncludeLeadingSep, SectionIncludeTrailingSep, SectionCaseInsensitiveSeps } |
| flags | SectionFlags |
| const_iterator | |
| const_pointer | |
| const_reference | |
| const_reverse_iterator | |
| difference_type | |
| iterator | |
| pointer | |
| reference | |
| reverse_iterator | |
| size_type | |
| value_type |
공개 함수
| QString() | |
| QString(QChar ch) | |
| QString(QLatin1StringView str) | |
(since 6.8) | QString(QStringView sv) |
| QString(const QByteArray&ba) | |
| QString(const char*str) | |
(since 6.1) | QString(const char8_t*str) |
| QString(const QChar*unicode, qsizetype size = -1) | |
| QString(qsizetype size, QChar ch) | |
| QString(const QString&other) | |
| QString(QString&&other) | |
| ~QString() | |
| QString & | append(const QString&str) |
| QString & | append(QChar ch) |
| QString & | append(QLatin1StringView str) |
(since 6.0) QString & | append(QStringView v) |
(since 6.5) QString & | append(QUtf8StringView str) |
| QString & | append(const QByteArray&ba) |
| QString & | append(const char*str) |
| QString & | append(const QChar*str, qsizetype len) |
| QString | arg(Args &&... args) const |
| QString | arg(const T&a, int fieldWidth = 0, QChar fillChar = u' ') const |
| QString | arg(T a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const |
| QString | arg(T a, int fieldWidth = 0, char format = 'g', int precision = -1, QChar fillChar = u' ') const |
(since 6.6) QString & | assign(QAnyStringView v) |
(since 6.6) QString & | assign(InputIterator first, InputIterator last) |
(since 6.6) QString & | assign(qsizetype n, QChar c) |
| const QChar | at(qsizetype position) const |
| QChar & | back() |
| QChar | back() const |
| QString::iterator | begin() |
| QString::const_iterator | begin() const |
| qsizetype | capacity() const |
| QString::const_iterator | cbegin() const |
| QString::const_iterator | cend() const |
| void | chop(qsizetype n) |
| QString | chopped(qsizetype len) && |
| QString | chopped(qsizetype len) const & |
| void | clear() |
| int | compare(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | compare(QLatin1StringView other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | compare(QStringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | compare(const QString&other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QString::const_iterator | constBegin() const |
| const QChar * | constData() const |
| QString::const_iterator | constEnd() const |
| bool | contains(const QRegularExpression&re, QRegularExpressionMatch*rmatch = nullptr) const |
| bool | contains(const QString&str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | contains(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | contains(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| qsizetype | count(const QString&str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| qsizetype | count(const QRegularExpression&re) const |
| qsizetype | count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.0) qsizetype | count(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QString::const_reverse_iterator | crbegin() const |
| QString::const_reverse_iterator | crend() const |
| QChar * | data() |
| const QChar * | data() const |
| void | detach() |
| QString::iterator | end() |
| QString::const_iterator | end() const |
| bool | endsWith(const QString&s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | endsWith(QLatin1StringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | endsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.1) QString::iterator | erase(QString::const_iterator first, QString::const_iterator last) |
(since 6.5) QString::iterator | erase(QString::const_iterator it) |
| QString & | fill(QChar ch, qsizetype size = -1) |
(since 6.0) QString | first(qsizetype n) && |
(since 6.0) QString | first(qsizetype n) const & |
| QChar & | front() |
| QChar | front() const |
| qsizetype | indexOf(QLatin1StringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| qsizetype | indexOf(const QRegularExpression&re, qsizetype from = 0, QRegularExpressionMatch*rmatch = nullptr) const |
| qsizetype | indexOf(const QString&str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| qsizetype | indexOf(QChar ch, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| qsizetype | indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QString & | insert(qsizetype position, const QString&str) |
| QString & | insert(qsizetype position, QChar ch) |
| QString & | insert(qsizetype position, QLatin1StringView str) |
(since 6.0) QString & | insert(qsizetype position, QStringView str) |
(since 6.5) QString & | insert(qsizetype position, QUtf8StringView str) |
| QString & | insert(qsizetype position, const QByteArray&str) |
| QString & | insert(qsizetype position, const char*str) |
| QString & | insert(qsizetype position, const QChar*unicode, qsizetype size) |
| bool | isEmpty() const |
| bool | isLower() const |
| bool | isNull() const |
| bool | isRightToLeft() const |
| bool | isUpper() const |
| bool | isValidUtf16() const |
(since 6.0) QString | last(qsizetype n) && |
(since 6.0) QString | last(qsizetype n) const & |
| qsizetype | lastIndexOf(const QRegularExpression&re, qsizetype from, QRegularExpressionMatch*rmatch = nullptr) const |
| qsizetype | lastIndexOf(const QString&str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.3) qsizetype | lastIndexOf(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.2) qsizetype | lastIndexOf(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.2) qsizetype | lastIndexOf(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.2) qsizetype | lastIndexOf(const QRegularExpression&re, QRegularExpressionMatch*rmatch = nullptr) const |
(since 6.2) qsizetype | lastIndexOf(const QString&str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| qsizetype | lastIndexOf(QChar ch, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| qsizetype | lastIndexOf(QLatin1StringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| qsizetype | lastIndexOf(QStringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QString | left(qsizetype n) && |
| QString | left(qsizetype n) const & |
| QString | leftJustified(qsizetype width, QChar fill = u' ', bool truncate = false) const |
| qsizetype | length() const |
(since 6.0) int | localeAwareCompare(QStringView other) const |
| int | localeAwareCompare(const QString&other) const |
(since 6.8) qsizetype | max_size() const |
| QString | mid(qsizetype position, qsizetype n = -1) && |
| QString | mid(qsizetype position, qsizetype n = -1) const & |
| QString | normalized(QString::NormalizationForm mode, QChar::UnicodeVersion version = QChar::Unicode_Unassigned) const |
(since 6.10) QString & | nullTerminate() |
(since 6.10) QString | nullTerminated() && |
(since 6.10) QString | nullTerminated() const & |
| QString & | prepend(const QString&str) |
| QString & | prepend(QChar ch) |
| QString & | prepend(QLatin1StringView str) |
(since 6.0) QString & | prepend(QStringView str) |
(since 6.5) QString & | prepend(QUtf8StringView str) |
| QString & | prepend(const QByteArray&ba) |
| QString & | prepend(const char*str) |
| QString & | prepend(const QChar*str, qsizetype len) |
| void | push_back(const QString&other) |
| void | push_back(QChar ch) |
| void | push_front(const QString&other) |
| void | push_front(QChar ch) |
| QString::reverse_iterator | rbegin() |
| QString::const_reverse_iterator | rbegin() const |
| QString & | remove(const QRegularExpression&re) |
| QString & | remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | remove(const QString&str, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | remove(qsizetype position, qsizetype n) |
| QString & | remove(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
(since 6.5) QString & | removeAt(qsizetype pos) |
(since 6.5) QString & | removeFirst() |
(since 6.1) QString & | removeIf(Predicate pred) |
(since 6.5) QString & | removeLast() |
| QString::reverse_iterator | rend() |
| QString::const_reverse_iterator | rend() const |
| QString | repeated(qsizetype times) const |
| QString & | replace(qsizetype position, qsizetype n, const QString&after) |
| QString & | replace(const QRegularExpression&re, const QString&after) |
| QString & | replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(QChar c, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(QChar ch, const QString&after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(QLatin1StringView before, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(QLatin1StringView before, const QString&after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(const QString&before, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(const QString&before, const QString&after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(qsizetype position, qsizetype n, QChar after) |
| QString & | replace(qsizetype position, qsizetype n, const QChar*after, qsizetype alen) |
| QString & | replace(const QChar*before, qsizetype blen, const QChar*after, qsizetype alen, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| void | reserve(qsizetype size) |
| void | resize(qsizetype size) |
| void | resize(qsizetype newSize, QChar fillChar) |
(since 6.8) void | resizeForOverwrite(qsizetype size) |
| QString | right(qsizetype n) && |
| QString | right(qsizetype n) const & |
| QString | rightJustified(qsizetype width, QChar fill = u' ', bool truncate = false) const |
| QString | section(QChar sep, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const |
| QString | section(const QRegularExpression&re, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const |
| QString | section(const QString&sep, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const |
| QString & | setNum(int n, int base = 10) |
| QString & | setNum(long n, int base = 10) |
| QString & | setNum(qlonglong n, int base = 10) |
| QString & | setNum(qulonglong n, int base = 10) |
| QString & | setNum(short n, int base = 10) |
| QString & | setNum(uint n, int base = 10) |
| QString & | setNum(ulong n, int base = 10) |
| QString & | setNum(ushort n, int base = 10) |
| QString & | setNum(double n, char format = 'g', int precision = 6) |
| QString & | setNum(float n, char format = 'g', int precision = 6) |
| QString & | setRawData(const QChar*unicode, qsizetype size) |
| QString & | setUnicode(const QChar*unicode, qsizetype size) |
(since 6.9) QString & | setUnicode(const char16_t*unicode, qsizetype size) |
(since 6.9) QString & | setUtf16(const char16_t*unicode, qsizetype size) |
| void | shrink_to_fit() |
| QString | simplified() const |
| qsizetype | size() const |
(since 6.8) QString & | slice(qsizetype pos, qsizetype n) |
(since 6.8) QString & | slice(qsizetype pos) |
(since 6.0) QString | sliced(qsizetype pos, qsizetype n) && |
(since 6.0) QString | sliced(qsizetype pos, qsizetype n) const & |
(since 6.0) QString | sliced(qsizetype pos) && |
(since 6.0) QString | sliced(qsizetype pos) const & |
| QStringList | split(const QString&sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QStringList | split(const QRegularExpression&re, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const |
| QStringList | split(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| void | squeeze() |
| bool | startsWith(const QString&s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | startsWith(QLatin1StringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | startsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| void | swap(QString&other) |
| CFStringRef | toCFString() const |
| QString | toCaseFolded() const |
| double | toDouble(bool*ok = nullptr) const |
(since 6.6) emscripten::val | toEcmaString() const |
| float | toFloat(bool*ok = nullptr) const |
| QString | toHtmlEscaped() const |
| int | toInt(bool*ok = nullptr, int base = 10) const |
| QByteArray | toLatin1() const |
| QByteArray | toLocal8Bit() const |
| long | toLong(bool*ok = nullptr, int base = 10) const |
| qlonglong | toLongLong(bool*ok = nullptr, int base = 10) const |
| QString | toLower() const |
| NSString * | toNSString() const |
| short | toShort(bool*ok = nullptr, int base = 10) const |
| std::string | toStdString() const |
| std::u16string | toStdU16String() const |
| std::u32string | toStdU32String() const |
| std::wstring | toStdWString() const |
| uint | toUInt(bool*ok = nullptr, int base = 10) const |
| ulong | toULong(bool*ok = nullptr, int base = 10) const |
| qulonglong | toULongLong(bool*ok = nullptr, int base = 10) const |
| ushort | toUShort(bool*ok = nullptr, int base = 10) const |
| QList<uint> | toUcs4() const |
| QString | toUpper() const |
| QByteArray | toUtf8() const |
| qsizetype | toWCharArray(wchar_t*array) const |
(since 6.0) auto | tokenize(Needle&&sep, Flags... flags) && |
(since 6.0) auto | tokenize(Needle&&sep, Flags... flags) const && |
(since 6.0) auto | tokenize(Needle&&sep, Flags... flags) const & |
| QString | trimmed() const |
| void | truncate(qsizetype position) |
| const QChar * | unicode() const |
(since 6.7) | operator std::u16string_view() const |
| QString & | operator+=(const QString&other) |
| QString & | operator+=(QChar ch) |
| QString & | operator+=(QLatin1StringView str) |
(since 6.0) QString & | operator+=(QStringView str) |
(since 6.5) QString & | operator+=(QUtf8StringView str) |
| QString & | operator+=(const QByteArray&ba) |
| QString & | operator+=(const char*str) |
| QString & | operator=(QString&&other) |
| QString & | operator=(const QString&other) |
| QString & | operator=(QChar ch) |
| QString & | operator=(QLatin1StringView str) |
| QString & | operator=(const QByteArray&ba) |
| QString & | operator=(const char*str) |
| QChar & | operator[](qsizetype position) |
| const QChar | operator[](qsizetype position) const |
정적 공용 멤버
| QString | asprintf(const char*cformat, ...) |
| int | compare(const QString&s1, const QString&s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| int | compare(QLatin1StringView s1, const QString&s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| int | compare(QStringView s1, const QString&s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| int | compare(const QString&s1, QLatin1StringView s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| int | compare(const QString&s1, QStringView s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString | fromCFString(CFStringRef string) |
(since 6.6) QString | fromEcmaString(emscripten::val jsString) |
| QString | fromLatin1(const char*str, qsizetype size) |
(since 6.0) QString | fromLatin1(QByteArrayView str) |
| QString | fromLatin1(const QByteArray&str) |
| QString | fromLocal8Bit(const char*str, qsizetype size) |
(since 6.0) QString | fromLocal8Bit(QByteArrayView str) |
| QString | fromLocal8Bit(const QByteArray&str) |
| QString | fromNSString(const NSString*string) |
(since 6.10) QString | fromRawData(const char16_t*unicode, qsizetype size) |
| QString | fromRawData(const QChar*unicode, qsizetype size) |
| QString | fromStdString(const std::string&str) |
| QString | fromStdU16String(const std::u16string&str) |
| QString | fromStdU32String(const std::u32string&str) |
| QString | fromStdWString(const std::wstring&str) |
| QString | fromUcs4(const char32_t*unicode, qsizetype size = -1) |
| QString | fromUtf8(const char*str, qsizetype size) |
(since 6.0) QString | fromUtf8(QByteArrayView str) |
| QString | fromUtf8(const QByteArray&str) |
(since 6.1) QString | fromUtf8(const char8_t*str) |
(since 6.0) QString | fromUtf8(const char8_t*str, qsizetype size) |
| QString | fromUtf16(const char16_t*unicode, qsizetype size = -1) |
| QString | fromWCharArray(const wchar_t*string, qsizetype size = -1) |
| int | localeAwareCompare(const QString&s1, const QString&s2) |
(since 6.0) int | localeAwareCompare(QStringView s1, QStringView s2) |
(since 6.8) qsizetype | maxSize()int(QStringView s1, QStringView s2)qsizetype |
| QString | number(long n, int base = 10) |
| QString | number(double n, char format = 'g', int precision = 6) |
| QString | number(int n, int base = 10) |
| QString | number(qlonglong n, int base = 10) |
| QString | number(qulonglong n, int base = 10) |
| QString | number(uint n, int base = 10) |
| QString | number(ulong n, int base = 10) |
| QString | vasprintf(const char*cformat, va_list ap) |
관련 비회원 변수
(since 6.1) qsizetype | erase(QString &s, const T &t) |
(since 6.1) qsizetype | erase_if(QString &s, Predicate pred) |
| bool | operator!=(const QByteArray &lhs, const QString &rhs) |
| bool | operator!=(const QString &lhs, const QString &rhs) |
| bool | operator!=(const char *const &lhs, const QString &rhs) |
| bool | operator!=(const QString &lhs, const QByteArray &rhs) |
| bool | operator!=(const QString &lhs, const QLatin1StringView &rhs) |
| bool | operator!=(const QString &lhs, const char *const &rhs) |
(since 6.4) QString | operator""_s(const char16_t *str, size_t size) |
| QString | operator+(QString &&s1, const QString &s2) |
(since 6.9) QString | operator+(QStringView lhs, const QString &rhs) |
(since 6.9) QString | operator+(const QString &lhs, QStringView rhs) |
| QString | operator+(const QString &s1, const QString &s2) |
| QString | operator+(const QString &s1, const char *s2) |
| QString | operator+(const char *s1, const QString &s2) |
| bool | operator<(const QByteArray &lhs, const QString &rhs) |
| bool | operator<(const char *const &lhs, const QString &rhs) |
| bool | operator<(const QLatin1StringView &lhs, const QString &rhs) |
| bool | operator<(const QString &lhs, const QByteArray &rhs) |
| bool | operator<(const QString &lhs, const QLatin1StringView &rhs) |
| bool | operator<(const QString &lhs, const QString &rhs) |
| bool | operator<(const QString &lhs, const char *const &rhs) |
| QDataStream & | operator<<(QDataStream &stream, const QString &string) |
| bool | operator<=(const QByteArray &lhs, const QString &rhs) |
| bool | operator<=(const QString &lhs, const QString &rhs) |
| bool | operator<=(const char *const &lhs, const QString &rhs) |
| bool | operator<=(const QLatin1StringView &lhs, const QString &rhs) |
| bool | operator<=(const QString &lhs, const QByteArray &rhs) |
| bool | operator<=(const QString &lhs, const QLatin1StringView &rhs) |
| bool | operator<=(const QString &lhs, const char *const &rhs) |
| bool | operator==(const QByteArray &lhs, const QString &rhs) |
| bool | operator==(const QLatin1StringView &lhs, const QString &rhs) |
| bool | operator==(const QString &lhs, const QByteArray &rhs) |
| bool | operator==(const QString &lhs, const QLatin1StringView &rhs) |
| bool | operator==(const QString &lhs, const QString &rhs) |
| bool | operator==(const QString &lhs, const char *const &rhs) |
| bool | operator==(const char *const &lhs, const QString &rhs) |
| bool | operator>(const QByteArray &lhs, const QString &rhs) |
| bool | operator>(const QString &lhs, const QString &rhs) |
| bool | operator>(const char *const &lhs, const QString &rhs) |
| bool | operator>(const QLatin1StringView &lhs, const QString &rhs) |
| bool | operator>(const QString &lhs, const QByteArray &rhs) |
| bool | operator>(const QString &lhs, const QLatin1StringView &rhs) |
| bool | operator>(const QString &lhs, const char *const &rhs) |
| bool | operator>=(const QByteArray &lhs, const QString &rhs) |
| bool | operator>=(const QString &lhs, const QString &rhs) |
| bool | operator>=(const char *const &lhs, const QString &rhs) |
| bool | operator>=(const QLatin1StringView &lhs, const QString &rhs) |
| bool | operator>=(const QString &lhs, const QByteArray &rhs) |
| bool | operator>=(const QString &lhs, const QLatin1StringView &rhs) |
| bool | operator>=(const QString &lhs, const char *const &rhs) |
| QDataStream & | operator>>(QDataStream &stream, QString &string) |
매크로
| QStringLiteral(str) | |
| QT_NO_CAST_FROM_ASCII | |
| QT_NO_CAST_TO_ASCII | |
| QT_RESTRICTED_CAST_FROM_ASCII | |
| const char * | qPrintable(const QString &str) |
| const wchar_t * | qUtf16Printable(const QString &str) |
| const char * | qUtf8Printable(const QString &str) |
상세 설명
QString은 16비트 QChar로 구성된 문자열을 저장하며, 각 QChar 는 하나의 UTF-16 코드 유닛에 해당합니다. (코드 값이 65535를 초과하는 유니코드 문자는 서로게이트 쌍, 즉 연속된 두 개의 QChar를 사용하여 저장됩니다.)
유니코드는 오늘날 사용 중인 대부분의 문자 체계를 지원하는 국제 표준입니다. 이는 US-ASCII(ANSI X3.4-1986) 및 Latin-1(ISO 8859-1)의 상위 집합이며, 모든 US-ASCII/Latin-1 문자는 동일한 코드 위치에서 사용할 수 있습니다.
내부적으로 QString은 암시적 공유 (쓰기 시 복사)를 사용하여 메모리 사용량을 줄이고 불필요한 데이터 복사를 방지합니다. 이는 또한 8비트 문자 대신 16비트 문자를 저장할 때 발생하는 고유한 오버헤드를 줄이는 데도 도움이 됩니다.
QString 외에도 Qt는 원시 바이트와 기존의 8비트 '\0'로 끝나는 문자열을 저장하기 위한 ` QByteArray ` 클래스를 제공합니다. 대부분의 용도에서는 `QString` 클래스를 사용하는 것이 좋습니다. 이 클래스는 Qt API 전반에 걸쳐 사용되며, 유니코드 지원 덕분에 향후 애플리케이션의 시장을 확장하고자 할 때 쉽게 현지화할 수 있습니다. QByteArray 가 적합한 두 가지 대표적인 경우는 원시 바이너리 데이터를 저장해야 할 때와 메모리 절약이 매우 중요한 경우(예: 임베디드 시스템)입니다.
문자열 초기화
QString을 초기화하는 한 가지 방법은 생성자에 ` const char * `를 전달하는 것입니다. 예를 들어, 다음 코드는 "Hello"라는 데이터를 포함하는 크기가 5인 QString을 생성합니다:
QString str = "Hello";QString은 ` fromUtf8()` 함수를 사용하여 ` const char * ` 데이터를 유니코드로 변환합니다.
const char * 매개변수를 받는 모든 QString 함수에서, const char * 은 고전적인 C 스타일의 '\\0' 로 끝나는 문자열로 해석됩니다. 함수 이름이 명시적으로 다른 인코딩을 나타내는 경우를 제외하고, 이러한 const char * 매개변수는 UTF-8로 인코딩된 것으로 간주됩니다.
Qt 6.4부터는 ` Qt::Literals::StringLiterals::operator""_s()` 및 ` Qt::Literals::StringLiterals::operator""_L1()` 리터럴 연산자를 사용하여 QString을 초기화할 수도 있습니다. 대부분의 경우, 리터럴을 사용하면 ` more efficient string construction`가 생성됩니다.
또한 문자열 데이터를 QChar의 배열 형태로 제공할 수도 있습니다:
static const QChar data[4] = {QChar(0x0055), QChar(0x006e), QChar(0x10e3), QChar(0x03a3) };
QString str(data, 4);QString은 QChar 데이터의 심층 복사본을 생성하므로, 나중에 부작용을 겪지 않고 데이터를 수정할 수 있습니다. 대신 QStringView 또는 QString::fromRawData()을 사용하면 문자 데이터의 심층 복사를 피할 수 있습니다.
또 다른 방법은 resize()을 사용하여 문자열의 크기를 설정하고, 데이터를 한 글자씩 초기화하는 것입니다. QString은 C++ 배열과 마찬가지로 0부터 시작하는 인덱스를 사용합니다. 특정 인덱스 위치에 있는 문자에 접근하려면 operator[]()을 사용할 수 있습니다.const 이 아닌 문자열의 경우, operator[]()은 할당문의 왼쪽에 사용할 수 있는 문자에 대한 참조를 반환합니다. 예를 들어:
QString str;
str.resize(4);
str[0] = QChar('U');
str[1] = QChar('n');
str[2] = QChar(0x10e3);
str[3] = QChar(0x03a3);읽기 전용 액세스의 경우, at() 함수를 사용하는 대체 구문을 사용할 수 있습니다:
QString str;
for (qsizetype i = 0; i < str.size();++i) {
if (str.at(i) >= QChar('a')&& str.at(i) <= QChar('f'))
qDebug() << "Found character in range [a-f]";
}at() 함수는 딥 복사(deep copy )가 발생하지 않기 때문에 operator[]()보다 더 빠를 수 있습니다. 또는 first(), last() 또는 sliced() 함수를 사용하여 한 번에 여러 문자를 추출할 수도 있습니다.
QString은 '\0' 문자(QChar::Null)를 포함할 수 있습니다. size() 함수는 포함된 '\0' 문자를 포함하여 항상 전체 문자열의 길이를 반환합니다.
resize() 함수를 호출한 후에는 새로 할당된 문자의 값이 정의되지 않습니다. 문자열의 모든 문자를 특정 값으로 설정하려면 fill() 함수를 사용하십시오.
QString은 문자열 사용을 단순화하기 위해 설계된 수십 가지의 오버로드를 제공합니다. 예를 들어, QString을 문자열 리터럴과 비교하려는 경우 다음과 같이 코드를 작성하면 예상대로 작동합니다:
QString str;
if (str == "auto" || str == "extern"
|| str == "static" || str == "register") {
// ...
}또한 QString을 인수로 받는 함수에 문자열 리터럴을 전달하여 QString(const char *) 생성자를 호출할 수도 있습니다. 마찬가지로, qPrintable() 매크로를 사용하여 const char * 인수를 받는 함수에 QString을 전달할 수 있으며, 이 매크로는 주어진 QString을 const char * 로 반환합니다. 이는 QString에 대해 toLocal8Bit()를 호출하는 것과 동일합니다.constData()을 호출하는 것과 같습니다.
문자열 데이터 조작
QString은 문자 데이터를 수정하기 위해 다음과 같은 기본 함수를 제공합니다: append(), prepend(), insert(), replace(), remove(). 예를 들어:
QString str = "and";
str.prepend("rock "); // str == "rock and"
str.append(" roll"); // str == "rock and roll"
str.replace(5, 3, "&"); // str == "rock & roll"위의 예시에서, replace() 함수의 첫 번째와 두 번째 인수는 치환을 시작할 위치와 치환할 문자 수입니다.
데이터 수정 함수가 문자열의 크기를 늘릴 때, QString은 데이터를 저장하는 메모리를 재할당할 수 있습니다. 이 경우, QString은 문자열의 크기가 상당히 커질 때까지 재할당 없이 추가 확장을 위한 공간을 확보하기 위해 당장 필요한 것보다 더 많이 확장됩니다.
insert(), remove() 및, 부분 문자열을 크기가 다른 문자열로 대체할 때 사용하는 replace() 함수는 큰 문자열의 경우 문자열 내의 많은 문자를 메모리에서 최소 한 칸씩 이동시켜야 하므로 속도가 느릴 수 있습니다(선형 시간).
QString을 점진적으로 생성하고 있으며, QString이 포함할 문자 수를 대략적으로 미리 알고 있다면, reserve()을 호출하여 QString에 특정 용량의 메모리를 미리 할당하도록 요청할 수 있습니다. 또한 capacity()을 호출하여 QString이 실제로 할당받은 메모리 용량을 확인할 수도 있습니다.
QString은 STL 스타일의 이터레이터 (QString::const_iterator 및 QString::iterator)를 제공합니다. 실제로 이터레이터는 C++ 표준 라이브러리가 제공하는 제네릭 알고리즘을 다룰 때 유용합니다.
참고: QString에 대한이터레이터와 그 내부의 개별 문자에 대한 참조는, QString의const 가 아닌 메서드가 호출될 때 유효성을 보장할 수 없습니다.const 가 아닌 메서드를 호출한 후 이러한 이터레이터나 참조에 접근하면 정의되지 않은 동작이 발생합니다. 이터레이터와 유사한 기능의 안정성이 필요한 경우, QString의 내부 상태와 연동되지 않아 무효화되지 않는 인덱스를 이터레이터 대신 사용해야 합니다.
참고: 암시적 공유(implicit sharing)로인해 , 특정 QString에 대해 처음 사용되는 비const 연산자나 함수는 내부적으로 해당 데이터의 심층 복사(deep copy)를 수행하게 할 수 있습니다. 이로 인해 해당 문자열에 대한 모든 이터레이터와 그 안의 개별 문자에 대한 참조가 무효화됩니다. 이터레이터를 보유한 상태에서는 non-const 함수를 호출하지 마십시오. 무효화된 이터레이터나 참조에 접근하면 정의되지 않은 동작이 발생합니다. 자세한 내용은 ‘암시적 공유 이터레이터 문제’ 섹션을 참조하십시오.
문자열에서 가시적인 문자 사이의 공백을 제거하거나 단순화해야 하는 경우가 자주 있습니다. 이러한 공백을 구성하는 문자는 ` isSpace()`가 ` true`를 반환하는 문자로, 일반 공백( ' '), 수평 탭( '\\t' ), 줄바꿈( '\\n') 등이 해당합니다. 문자열의 시작과 끝 부분의 공백을 제외한 복사본을 얻으려면 ` trimmed()`를 사용하십시오. 또한 문자열 내의 각 공백 문자 시퀀스( ' ')를 일반 공백으로 대체하려면 simplified()를 사용하십시오.
QString에서 특정 문자나 부분 문자열이 나타나는 모든 위치를 찾으려면 indexOf() 또는 lastIndexOf() 함수를 사용하십시오. 전자는 앞으로 검색하고, 후자는 뒤로 검색합니다. 두 함수 모두 검색을 시작할 인덱스 위치를 지정할 수 있습니다. 두 함수 모두 해당 문자나 부분 문자열을 찾으면 그 인덱스 위치를 반환하고, 찾지 못하면 -1을 반환합니다. 예를 들어, 다음은 특정 부분 문자열이 나타나는 모든 위치를 찾는 일반적인 루프입니다:
QString str = "We must be <b>bold</b>, very <b>bold</b>";
qsizetype j = 0;
while ((j = str.indexOf("<b>", j)) !=-1) {
qDebug() << "Found <b> tag at index position" << j;
++j;
}QString은 숫자를 문자열로, 문자열을 숫자로 변환하는 다양한 함수를 제공합니다. arg() 함수, setNum() 함수, number() 정적 함수, 그리고 toInt(), toDouble() 및 이와 유사한 함수들을 참조하십시오.
문자열을 대문자 또는 소문자로 변환하려면 toUpper() 또는 toLower()을 사용하십시오.
문자열 목록은 QStringList 클래스에서 처리합니다. split() 함수를 사용하여 문자열을 문자열 목록으로 분할할 수 있으며, QStringList::join()을 사용하여 선택적 구분 기호를 사용하여 문자열 목록을 하나의 문자열로 결합할 수 있습니다. 문자열 목록에서 특정 부분 문자열을 포함하거나 특정 QRegularExpression 에 일치하는 항목을 선택하여 필터링된 목록을 얻을 수 있습니다. 자세한 내용은 QStringList::filter()을 참조하십시오.
문자열 데이터 조회
QString이 특정 부분 문자열로 시작하거나 끝나는지 확인하려면 startsWith() 또는 endsWith()를 사용합니다. QString에 특정 문자나 부분 문자열이 포함되어 있는지 확인하려면 contains() 함수를 사용합니다. 문자열 내에서 특정 문자나 부분 문자열이 몇 번 나타나는지 확인하려면 count()를 사용합니다.
실제 문자 데이터에 대한 포인터를 얻으려면 data() 또는 constData()를 호출하십시오. 이 함수들은 QChar 데이터의 시작 부분에 대한 포인터를 반환합니다. 이 포인터는 QString에 대해const 함수가 아닌 다른 함수가 호출될 때까지 유효함을 보장합니다.
문자열 비교
QString은 operator<(), operator<=(), operator==(), operator>=() 등과 같은 오버로드된 연산자를 사용하여 비교할 수 있습니다. 이 비교는 두 문자열을 UTF-16 코드 단위 시퀀스로 간주하여 순전히 사전적 순서(lexicographical order)에 기반합니다. 이 방법은 매우 빠르지만 사람이 기대하는 방식과는 다릅니다. 따라서 사용자 인터페이스 문자열을 정렬할 때는, 해당 비교 기능이 지원되는 경우 일반적으로 ` QString::localeAwareCompare()` 함수를 사용하는 것이 더 좋습니다.
Qt가 ICU 라이브러리와 링크되어 있는 경우(대개 그렇습니다), 로케일을 고려한 정렬이 사용됩니다. 그렇지 않은 경우, 플랫폼별 해결책이 사용됩니다:
- Windows에서는 ` localeAwareCompare()`가 Control Panel 의 ` regional ` 및 ` language ` 옵션 부분에 설정된 현재 사용자 로케일을 사용합니다.
- macOS 및 iOS에서는 localeAwareCompare() 함수가 International preferences 패널의 Order for sorted lists 설정에 따라 비교를 수행합니다.
- 다른 유닉스 계열 시스템에서는 비교 시 시스템 라이브러리의
strcoll()함수를 사용합니다.
인코딩된 문자열 데이터와 QString 간의 변환
QString은 문자열의 const char * 버전을 QByteArray 로 반환하는 다음 함수들을 제공합니다: toUtf8(), toLatin1() 및 toLocal8Bit().
- toLatin1()는 Latin-1(ISO 8859-1)로 인코딩된 8비트 문자열을 반환합니다.
- toUtf8()는 UTF-8로 인코딩된 8비트 문자열을 반환합니다. UTF-8은 US-ASCII(ANSI X3.4-1986)의 상위 집합으로, 멀티바이트 시퀀스를 통해 전체 유니코드 문자 집합을 지원합니다.
- toLocal8Bit()는 시스템의 로컬 인코딩을 사용하여 8비트 문자열을 반환합니다. 이는 유닉스 시스템에서 toUtf8()와 동일합니다.
이러한 인코딩 중 하나에서 변환하려면 QString은 fromLatin1(), fromUtf8() 및 fromLocal8Bit()을 제공합니다. 다른 인코딩은 QStringEncoder 및 QStringDecoder 클래스를 통해 지원됩니다.
앞서 언급했듯이, QString은 const char * 문자열과의 상호 운용성을 용이하게 해주는 많은 함수와 연산자를 제공합니다. 하지만 이러한 기능은 양날의 검과도 같습니다: 모든 문자열이 US-ASCII나 Latin-1인 경우 QString을 사용하는 것이 더 편리해지지만, const char * 와의 암시적 변환이 잘못된 8비트 인코딩을 사용하여 수행될 위험이 항상 존재합니다. 이러한 위험을 최소화하기 위해, 다음의 프리프로세서 심볼 중 일부를 정의하여 이러한 암시적 변환을 비활성화할 수 있습니다:
- QT_NO_CAST_FROM_ASCII C 문자열 리터럴 및 포인터에서 유니코드로의 자동 변환을 비활성화합니다.
- QT_RESTRICTED_CAST_FROM_ASCII C 문자 및 문자 배열에서 유니코드로의 자동 변환은 허용하지만, 문자 포인터에서 유니코드로의 자동 변환은 비활성화합니다.
- QT_NO_CAST_TO_ASCII QString에서 C 문자열로의 자동 변환을 비활성화합니다.
이 경우 8비트 문자열로부터 QString을 생성하려면 fromUtf8(), fromLatin1() 또는 fromLocal8Bit()을 명시적으로 호출하거나, 경량 클래스인 QLatin1StringView 를 사용해야 합니다. 예를 들어:
// Required for using the '_L1' string literal.
using namespace Qt::StringLiterals;
// ...
QString url = "https://www.unicode.org/"_L1;마찬가지로, QString을 8비트 문자열로 변환하려면 toLatin1(), toUtf8() 또는 toLocal8Bit()을 명시적으로 호출해야 합니다.
| C 프로그래머를 위한 참고 사항 |
|---|
C++의 타입 시스템과 QString이 암시적으로 공유된다는 사실로 인해, QString은 int이나 다른 기본 타입처럼 취급될 수 있습니다. 예를 들어:
|
null 문자열과 빈 문자열의 차이
역사적인 이유로, QString은 null 문자열과 빈 문자열을 구분합니다. null 문자열은 QString의 기본 생성자를 사용하거나 생성자에 ` nullptr `을 전달하여 초기화된 문자열입니다. 빈 문자열은 크기가 0인 모든 문자열을 말합니다. null 문자열은 항상 비어 있지만, 빈 문자열이 반드시 null인 것은 아닙니다:
QString().isNull(); // returns true
QString().isEmpty(); // returns true
QString("").isNull(); // returns false
QString("").isEmpty(); // returns true
QString("abc").isNull(); // returns false
QString("abc").isEmpty(); // returns falseisNull()을 제외한 모든 함수는 null 문자열을 빈 문자열과 동일하게 취급합니다. 예를 들어, toUtf8().constData()은 null 문자열의 경우 '\0' 문자에 대한 유효한 포인터( nullptr 가 아님)를 반환합니다. 항상 isEmpty() 함수를 사용하고 isNull()는 피하는 것이 좋습니다.
숫자 형식
QString::arg() '%' 형식 지정자에 'L' 로케일 한정자가 포함되어 있고 기수가 10(기본값)인 경우, 기본 로케일이 사용됩니다. 이는 QLocale::setDefault()을 사용하여 설정할 수 있습니다. 숫자의 로컬라이즈된 문자열 표현을 보다 정밀하게 제어하려면 QLocale::toString()을 참조하십시오. QString이 수행하는 그 외의 모든 숫자 서식은 C 로케일의 숫자 표현 방식을 따릅니다.
QString::arg()가 숫자에 왼쪽 채우기를 적용할 때, 채우기 문자 '0' 는 특별히 처리됩니다. 숫자가 음수인 경우, 마이너스 기호가 0으로 채우기 전에 나타납니다. 필드가 로컬라이즈된 경우, '0' 대신 해당 로케일에 적합한 0 문자가 사용됩니다. 부동 소수점 숫자의 경우, 이 특별한 처리는 숫자가 유한한 경우에만 적용됩니다.
부동 소수점 형식
부동 소수점 숫자(float 또는 double)를 문자열로 포맷팅하는 멤버 함수(예: arg() 및 number())에서는, 포맷과 정밀도를 선택하여 사용되는 표현 방식을 제어할 수 있으며, 이들의 의미는 QLocale::toString(double, char, int)에서와 동일합니다.
선택한 형식에 지수가 포함된 경우, 지역화된 형식은 지수의 자릿수에 대한 로케일의 관례를 따릅니다. 지역화되지 않은 서식의 경우, 지수는 부호를 표시하며 최소 두 자릿수를 포함하며, 필요한 경우 0으로 왼쪽을 채웁니다.
보다 효율적인 문자열 생성
많은 문자열은 컴파일 시점에 이미 알려져 있습니다. C++ 문자열 리터럴에서 QString 생성자는 해당 문자열의 내용을 UTF-8로 간주하여 복사합니다. 이 과정에는 메모리 할당과 문자열 데이터의 재인코딩이 필요하며, 이러한 작업은 런타임에 수행됩니다. 문자열 데이터가 컴파일 시점에 이미 알려진 경우, ` QStringLiteral ` 매크로 또는 이와 유사한 ` operator""_s `를 사용하여 대신 컴파일 시점에 QString의 페이로드를 생성할 수 있습니다.
QString의 '+' 연산자를 사용하면 여러 부분 문자열을 조합하여 복잡한 문자열을 쉽게 구성할 수 있습니다. 다음과 같은 코드를 자주 작성하게 될 것입니다:
// Required for using the '_L1' string literal.
using namespace Qt::StringLiterals;
// ...
QString foo;
QString type = "long";
foo = "vector<"_L1 + type + ">::iterator"_L1;
if (foo.startsWith("(" + type + ") 0x"))
...이 두 가지 문자열 생성 방식 중 어느 것도 잘못된 것은 아니지만, 몇 가지 숨겨진 비효율성이 있습니다:
첫째, '+' 연산자를 반복해서 사용하면 메모리가 여러 번 할당될 수 있습니다. n > 2인 경우 n개의 부분 문자열을 연결할 때, 메모리 할당기가 최대 n - 1번 호출될 수 있습니다.
이러한 할당 작업은 내부 클래스 ` QStringBuilder`을 통해 최적화될 수 있습니다. 이 클래스는 `internal`로 표시되어 있으며, 코드에서 직접 인스턴스화하도록 의도된 것이 아니기 때문에 문서에는 나타나지 않습니다. 아래에서 설명하듯이, 이 클래스의 사용은 자동으로 이루어집니다.
QStringBuilder 이 클래스는 표현식 템플릿을 사용하며 ` '%' ` 연산자를 재구현하여, ` '+'` 대신 ` '%' `를 사용하여 문자열을 연결할 때, 최종 결과가 `QString`에 할당되기 직전까지 여러 부분 문자열의 연결이 연기되도록 합니다. 이 시점에서 최종 결과에 필요한 메모리 양이 확인됩니다. 그런 다음 메모리 할당기를 한 번 호출하여 필요한 공간을 확보하고, 부분 문자열을 하나씩 그 공간으로 복사합니다.
인라인 처리와 참조 카운트 감소를 통해 추가적인 효율성을 얻을 수 있습니다( QStringBuilder 로 생성된 QString의 참조 카운트는 1인 반면, QString::append()는 추가적인 테스트가 필요합니다).
이 개선된 문자열 생성 방법을 사용하는 데는 두 가지 방법이 있습니다. 가장 간단한 방법은 QStringBuilder 를 사용하고자 하는 곳에 포함시키고, 문자열을 연결할 때 '+' 대신 '%' 연산자를 사용하는 것입니다:
#include <QStringBuilder>
QString hello("hello");
QStringView el = QStringView{ hello }.sliced(2, 3);
QString message = hello % el % "world"_L1 % QChar('!');더 편리하지만 소스 코드 호환성이 완전히 보장되지는 않는, 보다 포괄적인 접근 방식은 빌드 시점에 QT_USE_QSTRINGBUILDER 를 정의하는 것입니다(컴파일러 플래그에 추가). 이렇게 하면 '+' 를 사용한 문자열 연결이 QStringBuilder's 와 동일한 방식으로 작동합니다. '%'.
참고: QStringBuilder가 활성화된 상태에서 문자열 연결 결과값에 자동 유형 추론(예: auto 키워드 사용)을 적용하면 , 해당 연결 결과가 실제로 QStringBuilder 특화형의 객체임을 확인할 수 있습니다:
QString str("QStringBuilder");
// "s" type is deduced as QStringBuilder<...>
auto s = "Like hot glue, " % str % " concatenates strings";
// Similarly the return type of this lambda is deduced as QStringBuilder<...>
auto concatenateStr = []() {
return "Like hot glue, " % str % " concatenates strings";
};QStringBuilder는 필요할 때 암시적으로 QString으로 변환하므로 이로 인해 문제가 발생하지는 않습니다. 만약 이를 원하지 않는다면, 컴파일러가 유형을 추론하도록 두지 말고 필요한 유형을 직접 명시해야 합니다:
QString s = "Like hot glue, " % str % " concatenates strings";
// With a lambda, specify a trailing return type:
auto concatenateStr = []() -> QString {
return "Like hot glue, " % str % " concatenates strings";
};최대 크기 및 메모리 부족 상황
QString의 최대 크기는 아키텍처에 따라 다릅니다. 대부분의 64비트 시스템은 2GB 이상의 메모리를 할당할 수 있으며, 일반적인 제한은 2^63바이트입니다. 실제 값은 데이터 블록을 관리하는 데 필요한 오버헤드에 따라서도 달라집니다. 따라서 32비트 플랫폼에서는 2 GB에서 오버헤드를 뺀 값을, 64비트 플랫폼에서는 2^63 바이트에서 오버헤드를 뺀 값을 최대 크기로 예상할 수 있습니다. QString에 저장할 수 있는 요소의 수는 이 최대 크기를 ` QChar`의 크기로 나눈 값입니다.
메모리 할당에 실패할 경우, 애플리케이션이 예외 처리를 지원하도록 컴파일된 경우 QString은 ` std::bad_alloc ` 예외를 발생시킵니다. Qt 컨테이너에서 메모리 부족 상황이 발생하는 경우에만 Qt가 예외를 발생시킵니다. 예외 처리가 비활성화된 경우, 메모리 부족은 정의되지 않은 동작으로 간주됩니다.
참고: 대상 운영 체제에서는 애플리케이션이 할당할 수 있는 총 메모리 양이나 개별 할당 크기에 제한을 둘 수 있습니다. 이로 인해 QString이 보유할 수 있는 문자열의 크기가 더욱 제한될 수 있습니다. 이러한 제한으로 인해 발생하는 동작을 완화하거나 제어하는 것은 Qt API의 범위를 벗어납니다.
참조: 어떤 문자열 클래스를 사용해야 할까요?, fromRawData(), QChar, QStringView, QLatin1StringView, QByteArray.
멤버 유형 문서
QString::ConstIterator
QString::const_iterator 의 Qt 스타일 동의어.
QString::Iterator
QString::iterator 의 Qt 스타일 동의어.
enum QString::NormalizationForm
이 열거형은 유니코드 텍스트의 다양한 정규화된 형태를 설명합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QString::NormalizationForm_D | 0 | 정규 분해 |
QString::NormalizationForm_C | 1 | 정규 분해에 이어 정규 합성 |
QString::NormalizationForm_KD | 2 | 호환성 분해 |
QString::NormalizationForm_KC | 3 | 호환성 분해 후 표준 조합 |
normalized() 및 유니코드 표준 부록 #15도 참조하십시오 .
enum QString::SectionFlag
flags QString::SectionFlags
이 열거형은 구분 기호 및 빈 필드와 관련하여 ` section()` 함수의 동작에 영향을 줄 수 있는 플래그를 지정합니다.
| 상수 | 상수 | 상수값 |
|---|---|---|
QString::SectionDefault | 0x00 | 빈 필드는 계산되지만, 앞뒤의 구분 기호는 포함되지 않으며, 구분 기호의 대소문자를 구분하여 비교합니다. |
QString::SectionSkipEmpty | 0x01 | 빈 필드는 존재하지 않는 것으로 취급합니다. 즉, 시작과 끝을 결정할 때 빈 필드는 고려되지 않습니다. |
QString::SectionIncludeLeadingSep | 0x02 | 결과 문자열에 선행 구분 기호(있는 경우)를 포함합니다. |
QString::SectionIncludeTrailingSep | 0x04 | 결과 문자열에 뒤쪽 구분 기호(있는 경우)를 포함합니다. |
QString::SectionCaseInsensitiveSeps | 0x08 | 구분 기호를 대소문자를 구분하지 않고 비교합니다. |
SectionFlags 유형은 QFlags<SectionFlag>에 대한 typedef입니다. 이 유형은 SectionFlag 값들의 OR 조합을 저장합니다.
section()도 참조하십시오 .
QString::const_iterator
QString::iterator도 참조하세요 .
QString::const_pointer
QString::const_pointer typedef는 QString 요소에 대한 STL 스타일의 const 포인터를 제공합니다 (QChar).
QString::const_reference
QString::const_reverse_iterator
QString::reverse_iterator 및 QString::const_iterator도 참조하십시오 .
QString::difference_type
QString::iterator
QString::const_iterator도 참조하십시오 .
QString::pointer
QString::pointer typedef는 QString 요소에 대한 STL 스타일의 포인터를 제공합니다 (QChar).
QString::reference
QString::reverse_iterator
QString::const_reverse_iterator 및 QString::iterator도 참조하십시오 .
QString::size_type
QString::value_type
멤버 함수 설명서
[constexpr noexcept] QString::QString()
빈 문자열을 생성합니다. 빈 문자열은 빈 상태로 간주됩니다.
isEmpty(), isNull() 및 Distinction Between Null and Empty Strings도 참조하십시오 .
QString::QString(QChar ch)
ch 문자를 포함하는, 길이가 1인 문자열을 생성합니다.
QString::QString(QLatin1StringView str)
str 에서 인식된 Latin-1 문자열의 복사본을 생성합니다.
fromLatin1()도 참조하십시오 .
[explicit, since 6.8] QString::QString(QStringView sv)
스트링 뷰의 데이터로 초기화된 문자열을 생성합니다.
sv 가 null인 경우에만 QString이 null이 됩니다.
이 함수는 Qt 6.8에서 도입되었습니다.
fromUtf16()도 참조하십시오 .
QString::QString(const QByteArray &ba)
ba 바이트 배열로 초기화된 문자열을 생성합니다. 주어진 바이트 배열은 fromUtf8() 함수를 사용하여 유니코드로 변환됩니다.
애플리케이션을 컴파일할 때 QT_NO_CAST_FROM_ASCII 를 정의하여 이 생성자를 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 QObject::tr()를 통해 처리되도록 보장하려는 경우 이 방법이 유용할 수 있습니다.
참고: 바이트 배열에포함된 null 바이트('\0')는 이 문자열에 포함되어 유니코드 null 문자(U+0000)로 변환됩니다. 이 동작은 Qt 5.x와는 다릅니다.
fromLatin1(), fromLocal8Bit(), fromUtf8()도 참조하십시오 .
QString::QString(const char *str)
8비트 문자열 str 로 초기화된 문자열을 생성합니다. 주어진 const char 포인터는 fromUtf8() 함수를 사용하여 유니코드로 변환됩니다.
응용 프로그램을 컴파일할 때 ` QT_NO_CAST_FROM_ASCII `를 정의하면 이 생성자를 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 ` QObject::tr()`를 반드시 거치도록 보장하고자 할 때 이 방법이 유용할 수 있습니다.
참고: QT_RESTRICTED_CAST_FROM_ASCII 를정의하면 이 생성자가 비활성화되지만, 대신 QString(const char (&ch)[N]) 생성자가 활성화됩니다. 이 경우 리터럴이 아닌 입력, NUL 문자가 포함된 입력, 또는 7비트 이외의 문자를 사용하는 것은 정의되지 않은 동작을 유발합니다.
fromLatin1(), fromLocal8Bit(), fromUtf8()도 참조하십시오 .
[since 6.1] QString::QString(const char8_t *str)
UTF-8 문자열 ` str`으로 초기화된 문자열을 생성합니다. 지정된 `const char8_t` 포인터는 ` fromUtf8()` 함수를 사용하여 유니코드로 변환됩니다.
이 함수는 Qt 6.1에서 도입되었습니다.
fromLatin1(), fromLocal8Bit() 및 fromUtf8()도 참조하십시오 .
[explicit] QString::QString(const QChar *unicode, qsizetype size = -1)
QChar 배열 unicode 의 첫 번째 size 개 문자로 초기화된 문자열을 생성합니다.
unicode 가 0인 경우, 빈 문자열이 생성됩니다.
size 가 음수인 경우, unicode 는 '\0'로 끝나는 배열을 가리키는 것으로 간주되며 그 길이는 동적으로 결정됩니다. 끝을 나타내는 null 문자는 문자열의 일부로 간주되지 않습니다.
QString은 문자열 데이터의 심층 복사본을 만듭니다. 유니코드 데이터는 있는 그대로 복사되며, 바이트 순서 표시(Byte Order Mark)가 있는 경우 그대로 보존됩니다.
fromRawData()도 참조하십시오 .
QString::QString(qsizetype size, QChar ch)
지정된 size 를 문자열로 생성하며, 모든 문자를 ch 로 설정합니다.
fill()도 참조하십시오 .
[noexcept] QString::QString(const QString &other)
other 의 복사본을 생성합니다.
QString은 암시적으로 공유되므로 이 작업은 상수 시간 내에 완료됩니다. 이로 인해 함수에서 QString을 반환하는 작업이 매우 빠르게 수행됩니다. 공유된 인스턴스가 수정되면 해당 인스턴스가 복사되며(쓰기 시 복사), 이 작업에는 선형 시간이 소요됩니다.
operator=()도 참조하십시오 .
[noexcept default] QString::QString(QString &&other)
QString 인스턴스를 이동 생성하여, 해당 인스턴스가 ` other `가 가리키던 것과 동일한 객체를 가리키게 합니다.
[noexcept] QString::~QString()
문자열을 삭제합니다.
QString &QString::append(const QString &str)
이 문자열의 끝에 “ str ”라는 문자열을 추가합니다.
예시:
이는 insert() 함수를 사용하는 것과 동일합니다:
x.insert(x.size(), y);append() 함수는 일반적으로 매우 빠릅니다(상수 시간). 이는 QString 가 문자열 데이터의 끝에 추가 공간을 미리 할당해 두기 때문에, 매번 문자열 전체를 재할당하지 않고도 길이를 늘릴 수 있기 때문입니다.
operator+=(), prepend() 및 insert()도 참조하십시오 .
QString &QString::append(QChar ch)
이 문자열에 ‘ ch ’ 문자를 추가합니다.
이 함수는 QString::append()을 오버로드합니다.
QString &QString::append(QLatin1StringView str)
str 함수가 인식한 Latin-1 문자열을 이 문자열 뒤에 추가합니다.
이 함수는 ` QString::append()`를 오버로드합니다.
[since 6.0] QString &QString::append(QStringView v)
지정된 문자열 뷰 ` v `를 이 문자열에 추가하고 그 결과를 반환합니다.
이 함수는 ` QString::append()`를 오버로드합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
[since 6.5] QString &QString::append(QUtf8StringView str)
UTF-8 문자열 뷰 ` str `를 이 문자열에 추가합니다.
이 함수는 ` QString::append()`을 오버로드합니다.
이 함수는 Qt 6.5에서 도입되었습니다.
QString &QString::append(const QByteArray &ba)
이 문자열에 바이트 배열 ` ba `을 추가합니다. 주어진 바이트 배열은 ` fromUtf8()` 함수를 사용하여 유니코드로 변환됩니다.
애플리케이션을 컴파일할 때 ` QT_NO_CAST_FROM_ASCII `을 정의하여 이 함수를 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 ` QObject::tr()`을 반드시 거치도록 보장하고자 할 때 유용할 수 있습니다.
이 함수는 QString::append()을 오버로드합니다.
QString &QString::append(const char *str)
이 문자열에 “ str ” 문자열을 추가합니다. 지정된 const char 포인터는 fromUtf8() 함수를 사용하여 유니코드로 변환됩니다.
응용 프로그램을 컴파일할 때 ` QT_NO_CAST_FROM_ASCII `를 정의하여 이 함수를 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 ` QObject::tr()`를 반드시 거치도록 보장하고자 할 때 유용할 수 있습니다.
이 함수는 QString::append()을 오버로드합니다.
QString &QString::append(const QChar *str, qsizetype len)
QChar 배열 str 에 포함된 ‘ len ’ 문자를 이 문자열에 추가합니다.
이 함수는 ` QString::append()`을 오버로드합니다.
template <typename... Args> QString QString::arg(Args &&... args) const
이 문자열에서 %N 가 나타나는 부분을 args 의 해당 인수로 대체합니다. 인수는 위치에 따라 구분되지 않습니다. 즉, args 의 첫 번째 인수는 %N 를 가장 낮은 N (모두)로 대체하고, args 의 두 번째 인수는 %N 를 그 다음으로 낮은 N 로 대체하는 식입니다.
Args QAnyStringView 로 암시적으로 변환되는 모든 것으로 구성될 수 있습니다.
참고: Qt 6.9 이전버전에서는 QAnyStringView 및 UTF-8 문자열(QUtf8StringView, QByteArray, QByteArrayView, const char8_t* 등)이 args 로 지원되지 않았습니다.
QString::arg()도 참조하십시오 .
template <typename T> requires if_string_like<T> QString QString::arg(const T &a, int fieldWidth = 0, QChar fillChar = u' ') const
이 문자열의 복사본을 반환하며, 번호가 가장 낮은 자리 표시자를 string a 로 대체합니다. 즉, %1, %2, ..., %99 와 같습니다.
fieldWidth a 가 차지해야 하는 최소 공간을 지정합니다. 가 보다 적은 공간을 필요로 하는 경우, 문자로 채워져 가 되도록 합니다. 양수인 는 텍스트를 오른쪽 정렬로 만듭니다. 음수인 는 텍스트를 왼쪽 정렬로 만듭니다. a fieldWidth fillChar fieldWidth fieldWidth fieldWidth
이 예제는 파일 목록을 처리하는 동안 진행 상황을 보고하기 위해 status 문자열을 생성하는 방법을 보여줍니다:
int i; // current file's number
int total; // number of files to process
QStringView fileName; // current file's name
QString status = QString("Processing file %1 of %2: %3")
.arg(i).arg(total).arg(fileName);먼저, ` arg(i) `는 ` %1`을 대체합니다. 그런 다음 ` arg(total) `는 ` %2`을 대체합니다. 마지막으로, ` arg(fileName) `는 ` %3`을 대체합니다.
asprintf() 대신 arg()를 사용하는 한 가지 장점은, 애플리케이션의 문자열이 다른 언어로 번역될 경우 번호가 매겨진 자리 표시자의 순서가 바뀔 수 있지만, 각 arg()는 어디에 나타나든 상관없이 번호가 가장 낮은 미대체된 자리 표시자를 계속 대체한다는 점입니다. 또한, 문자열 내에 자리 표시자 %i 가 두 번 이상 나타나는 경우, arg()는 이 자리 표시자들을 모두 대체합니다.
대체되지 않은 자리 표시자가 남아 있지 않으면 경고 메시지가 출력되고 결과는 정의되지 않습니다. 자리 표시자 번호는 1에서 99 사이여야 합니다.
참고: Qt 6.9 이전버전에서는 이 함수가 char, QChar, QString, QStringView 및 QLatin1StringView 에 대해 오버로드되어 있었으며, 경우에 따라 wchar_t 및 char16_t 인수가 정수 오버로드로 해석되기도 했습니다. Qt 5.10 이전 버전에서는 이 함수에 QStringView 및 QLatin1StringView 오버로드가 없었습니다.
template <typename T> requires if_integral_non_char<T> QString QString::arg(T a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const
a 인수는 기수 base 로 표현되며, 기본값은 10이고 2에서 36 사이의 값이어야 합니다. 10 이외의 기수를 사용하는 경우, a 은 부호 없는 정수로 처리됩니다.
fieldWidth a 가 문자로 채워져 확장되는 최소 공간의 크기를 지정합니다. 양수 값을 지정하면 텍스트가 오른쪽 정렬되고, 음수 값을 지정하면 텍스트가 왼쪽 정렬됩니다. fillChar
'%' 뒤에 'L'이 올 수 있으며, 이 경우 해당 시퀀스는 a 의 현지화된 표현으로 대체됩니다. 변환에는 QLocale::setDefault()로 설정된 기본 로케일이 사용됩니다. 기본 로케일이 지정되지 않은 경우 시스템 로케일이 사용됩니다. base 가 10이 아닌 경우 'L' 플래그는 무시됩니다.
QString str;
str = QString("Decimal 63 is %1 in hexadecimal")
.arg(63, 0, 16);
// str == "Decimal 63 is 3f in hexadecimal"
QLocale::setDefault(QLocale(QLocale::English, QLocale::UnitedStates));
str = QString("%1 %L2 %L3")
.arg(12345)
.arg(12345)
.arg(12345, 0, 16);
// str == "12345 12,345 3039"참고: Qt 6.10.1 이전버전에서는 이 함수가 암시적으로 정수형으로 변환되는 유형의 인자를 허용했습니다. 이는 (범위가 지정되지 않은) 열거형을 제외하고 더 이상 지원되지 않는데, 이는 부동소수점 유형으로 변환 가능한 유형도 허용하여, 해당 유형이 정수형으로 출력될 때 정밀도가 손실되었기 때문입니다. 이전 버전과의 호환성을 유지하기 위한 해결책은 해당 유형을 표시 형식이 의도한 바와 일치하는 C++ 유형(int, float 등)으로 형변환하는 것입니다.
참고: Qt 6.9 이전버전에서는 이 함수가 다양한 정수형에 대해 오버로드되어 있었으며, 때때로 char 및 char16_t 인수를 잘못 받아들이는 경우가 있었습니다.
이 함수는 QString::arg()을 오버로드합니다.
Number formats도 참조하십시오 .
template <typename T> requires if_floating_point<T> QString QString::arg(T a, int fieldWidth = 0, char format = 'g', int precision = -1, QChar fillChar = u' ') const
a 인수는 지정된 format 및 precision 에 따라 서식이 지정됩니다. 자세한 내용은 Floating-point Formats 을 참조하십시오.
fieldWidth a 가 문자로 채워지며, 이를 위해 패딩되는 최소 공간의 크기를 지정합니다. 양수 값을 지정하면 텍스트가 오른쪽 정렬되고, 음수 값을 지정하면 왼쪽 정렬됩니다. fillChar
double d = 12.34;
QString str = QString("delta: %1").arg(d, 0, 'E', 3);
// str == "delta: 1.234E+01"참고: Qt 6.9 이전버전에서는 이 함수가 double 를 인수로 받는 일반 함수였습니다. 현재는 템플릿 함수로 변경됨에 따라, 단순히 부동 소수점 유형으로 암시적으로 변환되는 인수는 더 이상 허용하지 않습니다. 하위 호환성을 유지하기 위한 해결책은 해당 유형을 C++ 부동 소수점 유형 중 하나로 형변환하는 것입니다.
이 함수는 ` QString::arg()`을 오버로드합니다.
QLocale::toString(), QLocale::FloatingPointPrecisionOption 및 Number formats도 참조하십시오 .
[static] QString QString::asprintf(const char *cformat, ...)
cformat 형식 문자열과 임의의 인자 목록을 사용하여 서식이 지정된 문자열을 안전하게 생성합니다.
이 포맷 문자열은 표준 C++ 라이브러리의 printf()에서 제공하는 변환 지정자, 길이 수정자 및 플래그를 지원합니다. cformat 문자열과 %s 인수는 UTF-8로 인코딩되어야 합니다.
참고: %lc 이스케이프시퀀스는 char16_t 유형( QChar::unicode()에서 반환되는 것과 동일) 또는 ushort 의 유니코드 문자를 기대합니다. %ls 이스케이프 시퀀스는 char16_t 유형 또는 ushort (QString::utf16()에서 반환되는 것과 동일)의 유니코드 문자로 구성된 0으로 종료되는 배열에 대한 포인터를 기대합니다. 이는 표준 C++ 라이브러리의 printf()와 상충되는데, printf()는 %lc 를 wchar_t 출력용으로, %ls 를 wchar_t* 출력용으로 정의하고 있으며, wchar_t 의 크기가 16비트가 아닌 플랫폼에서는 컴파일러 경고가 발생할 수도 있습니다.
경고: 새로운 Qt 코드에서는 QString::asprintf()를 사용하지 않는것이 좋습니다 . 대신, 유니코드 문자열을 원활하게 지원하며 타입 안전성을 보장하는 QTextStream 또는 arg()를 사용하는 것을 고려해 보십시오. 다음은 QTextStream 를 사용하는 예제입니다:
QString result;
QTextStream(&result) << "pi = " << 3.14;
// result == "pi = 3.14"translations 의 경우, 특히 문자열에 두 개 이상의 이스케이프 시퀀스가 포함된 경우에는 대신 arg() 함수를 사용하는 것을 고려해야 합니다. 이를 통해 번역자가 대체 순서를 제어할 수 있습니다.
arg()도 참조하십시오 .
[since 6.6] QString &QString::assign(QAnyStringView v)
이 문자열의 내용을 v 의 복사본으로 대체하고, 이 문자열에 대한 참조를 반환합니다.
이 문자열의 크기는 ` v`의 크기와 동일하며, ` v.toString()`을 통해 변환된 것처럼 UTF-16으로 변환됩니다. 그러나 ` QAnyStringView::toString()`과 달리, 이 함수는 예상 크기가 이 문자열의 용량을 초과하거나 이 문자열이 공유된 경우에만 메모리를 할당합니다.
이 함수는 Qt 6.6에서 도입되었습니다.
QAnyStringView::toString()도 참조하십시오 .
[since 6.6] template <typename InputIterator> requires if_compatible_iterator<InputIterator> QString &QString::assign(InputIterator first, InputIterator last)
이 문자열의 내용을 반복자 범위 [first, last) 내 요소들의 복사본으로 대체하고, 이 문자열에 대한 참조를 반환합니다.
이 문자열의 크기는 [first, last) 범위에 있는 요소들의 디코딩된 길이와 같게 되며, 이 함수는 입력 문자 집합을 UTF-16으로 투명하게 재인코딩하기 때문에 이 길이는 범위 자체의 길이와 같을 필요는 없습니다.
이 함수는 범위의 요소 수(또는 UTF-16으로 인코딩되지 않은 입력의 경우, 결과 문자열의 최대 가능한 크기)가 이 문자열의 용량을 초과하거나, 이 문자열이 공유되는 경우에만 메모리를 할당합니다.
참고: 인자 중 하나가 *this에 대한 이터레이터이거나 [first, last)가 유효한 범위가 아닌 경우,동작은 정의되지 않습니다.
제약 조건
InputIterator 가 LegacyInputIterator의 요구 사항을 충족하고, InputIterator 의 value_type 가 다음 문자 유형 중 하나일 경우에만 오버로드 해결에 참여합니다:
- QChar
- QLatin1Char
charunsigned charsigned charchar8_tchar16_t- (Windows와 같이 16비트 유형인 플랫폼의 경우)
wchar_t char32_t
이 함수는 Qt 6.6에서 도입되었습니다.
[since 6.6] QString &QString::assign(qsizetype n, QChar c)
이 문자열의 내용을 c 의 n 개 복사본으로 대체하고, 이 문자열에 대한 참조를 반환합니다.
이 문자열의 크기는 n 와 같아지며, 이 값은 0 이상이어야 합니다.
n 가 이 문자열의 용량을 초과하거나 이 문자열이 공유된 경우에만 이 함수가 메모리를 할당합니다.
이 함수는 Qt 6.6에서 도입되었습니다.
fill()도 참조하십시오 .
const QChar QString::at(qsizetype position) const
문자열에서 지정된 인덱스 position 에 있는 문자를 반환합니다.
position 는 문자열 내에서 유효한 인덱스 위치여야 합니다(즉, 0 <= position < size()).
operator[]()도 참조하십시오 .
QChar &QString::back()
문자열의 마지막 문자에 대한 참조를 반환합니다. ` operator[](size() - 1)`와 동일합니다.
이 함수는 STL 호환성을 위해 제공됩니다.
경고: 빈 문자열에 대해 이 함수를호출하면 정의되지 않은 동작이 발생합니다.
front(), at(), operator[]()도 참조하십시오 .
QChar QString::back() const
문자열의 마지막 문자를 반환합니다. ` at(size() - 1)`와 동일합니다.
이 함수는 STL 호환성을 위해 제공됩니다.
경고: 빈 문자열에 대해 이 함수를호출하면 정의되지 않은 동작이 발생합니다.
front(), at(), operator[]()도 참조하십시오 .
QString::iterator QString::begin()
문자열의 첫 번째 문자를 가리키는 STL 스타일의 이터레이터를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 ` QString `가 수정되면 무효화됩니다.
참조: ` constBegin()` 및 ` end()`.
QString::const_iterator QString::begin() const
이 함수는 ` QString::begin()`를 오버로드합니다.
qsizetype QString::capacity() const
재할당을 유발하지 않고 문자열에 저장할 수 있는 최대 문자 수를 반환합니다.
이 함수의 유일한 목적은 ` QString`의 메모리 사용량을 미세 조정할 수 있는 수단을 제공하는 것입니다. 일반적으로 이 함수를 호출할 일은 거의 없습니다. 문자열에 포함된 문자 수를 알고 싶다면 ` size()`를 호출하십시오.
참고: 정적으로 할당된문자열은 비어 있지 않더라도 용량이 0으로 보고됩니다.
참고: 할당된 메모리 블록 내의 여유공간 위치는 정의되지 않습니다. 즉, 여유 메모리가 항상 초기화된 요소 뒤에 위치한다고 가정해서는 안 됩니다.
reserve() 및 squeeze()도 참조하십시오 .
QString::const_iterator QString::cbegin() const
문자열의 첫 번째 문자를 가리키는 const STL 스타일의 반복자를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 ` QString `가 수정되면 무효화됩니다.
QString::const_iterator QString::cend() const
문자열의 마지막 문자가 끝난 바로 다음 위치를 가리키는 const STL 스타일의 이터레이터를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 ` QString `가 수정되면 무효화됩니다.
void QString::chop(qsizetype n)
문자열의 끝에서 ‘ n ’ 문자들을 제거합니다.
n 가 size() 이상인 경우, 결과는 빈 문자열이 됩니다. n 가 음수인 경우, 0을 전달한 것과 동일합니다.
예시:
QString str("LOGOUT\r\n");
str.chop(2);
// str == "LOGOUT"문자열의 시작 부분에서 문자를 제거하려면 대신 remove()을 사용하십시오.
truncate(), resize(), remove(), QStringView::chop()도 참조하십시오 .
이 문자열의 가장 왼쪽에 위치한 size() - len 개의 문자를 포함하는 문자열을 반환합니다.
참고: len 가 음수이거나 size()보다 큰 경우동작이 정의되지 않습니다.
endsWith(), first(), last(), sliced(), chop(), truncate(), slice()도 참조하십시오 .
void QString::clear()
문자열의 내용을 지우고 null로 만듭니다.
[static noexcept] int QString::compare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
s1 라는 문자열과 s2 라는 문자열을 비교하여, s1 가 s2 보다 작으면 음의 정수를, 가 s2 보다 크면 양의 정수를, 둘이 같으면 0을 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우 대소문자를 구분하여 비교하며, 그렇지 않은 경우 대소문자를 구분하지 않고 비교합니다.
대소문자를 구분하는 비교는 문자 자체의 숫자형 유니코드 값만을 기반으로 하여 매우 빠르지만, 사람이 기대하는 방식과는 다릅니다. localeAwareCompare()를 사용하여 사용자에게 표시되는 문자열을 정렬하는 경우를 생각해 보십시오.
int x = QString::compare("aUtO", "AuTo", Qt::CaseInsensitive); // x == 0
int y = QString::compare("auto", "Car", Qt::CaseSensitive); // y > 0
int z = QString::compare("auto", "Car", Qt::CaseInsensitive); // z < 0참고: 이 함수는 null 문자열을 빈 문자열과 동일하게 취급합니다. 자세한 내용은 Distinction Between Null and Empty Strings 를 참조하십시오.
operator==(), operator<(), operator>(), Comparing Strings도 참조하십시오 .
[noexcept] int QString::compare(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
cs 설정을 사용하여, 이 값과 ch 간의 비교를 수행합니다.
이 함수는 QString::compare()을 오버로드합니다.
[noexcept] int QString::compare(QLatin1StringView other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
compare(*this, other, cs)와 동일합니다.
이 함수는 QString::compare()을 오버로드합니다.
[noexcept] int QString::compare(QStringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
cs 설정을 사용하여, 이 값과 s 값을 비교합니다.
이 함수는 QString::compare()을 오버로드합니다.
[noexcept] int QString::compare(const QString &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 문자열과 other 문자열을 사전 순으로 비교하여, 이 문자열이 other 보다 작으면 음의 정수를, other 보다 크면 양의 정수를, 둘이 같으면 0을 반환합니다.
compare(*this, other, cs)와 동일합니다.
이 함수는 QString::compare()을 오버로드합니다.
[static noexcept] int QString::compare(QLatin1StringView s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
cs 의 대소문자 구분 설정을 사용하여 s1 과 s2 을 비교합니다.
이 함수는 QString::compare()를 오버로드합니다.
[static noexcept] int QString::compare(QStringView s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
이 함수는 ` QString::compare()`를 오버로드합니다.
[static noexcept] int QString::compare(const QString &s1, QLatin1StringView s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
cs 설정에 따라 대소문자 구별 여부를 고려하여 s1 와 s2 를 비교합니다.
이 함수는 QString::compare()을 오버로드합니다.
[static noexcept] int QString::compare(const QString &s1, QStringView s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
이 함수는 ` QString::compare()`를 오버로드합니다.
QString::const_iterator QString::constBegin() const
문자열의 첫 번째 문자를 가리키는 const STL 스타일 이터레이터를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 ` QString `가 수정될 경우 무효화됩니다.
참조: ` begin()` 및 ` constEnd()`.
const QChar *QString::constData() const
QString 에 저장된 데이터에 대한 포인터를 반환합니다. 이 포인터를 사용하여 문자열을 구성하는 각 문자에 접근할 수 있습니다.
문자가 수정되지 않는 한 이 포인터는 유효함을 유지합니다.
참고: 반환된문자열은 '\0'로 끝나지 않을 수 있습니다. 배열의 길이를 확인하려면 ` size()`를 사용하십시오.
data(), operator[]() 및 fromRawData()도 참조하십시오 .
QString::const_iterator QString::constEnd() const
문자열의 마지막 문자가 끝난 바로 다음 위치를 가리키는 const STL 스타일의 이터레이터를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 ` QString `가 수정될 경우 무효화됩니다.
참조: ` constBegin()` 및 ` end()`.
bool QString::contains(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const
정규 표현식 re 이 이 문자열의 어느 곳에서든 일치하면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.
일치하는 부분이 있고 rmatch 가 nullptr 가 아닌 경우, 일치 결과를 rmatch 가 가리키는 QRegularExpressionMatch 객체에 기록합니다.
QRegularExpression::match()도 참조하십시오 .
bool QString::contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 문자열에 str 이 포함되어 있으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우, 검색은 대소문자를 구분하며, 그렇지 않은 경우 대소문자를 구분하지 않습니다.
예:
QString str = "Peter Pan";
str.contains("peter", Qt::CaseInsensitive); // returns truebool QString::contains(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 문자열에 ‘ ch ’ 문자가 포함되어 있으면 ‘ true ’을 반환하고, 그렇지 않으면 ‘ false ’을 반환합니다.
이 함수는 QString::contains()을 오버로드합니다.
bool QString::contains(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 문자열에 latin-1 문자열 str 이 포함되어 있으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.
이 함수는 ` QString::contains()`을 오버로드합니다.
[noexcept] bool QString::contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 문자열에 “ str ”이라는 문자열이 포함되어 있으면 “ true ”을 반환하고, 그렇지 않으면 “ false ”을 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우, 검색은 대소문자를 구분하며, 그렇지 않은 경우 대소문자를 구분하지 않습니다.
이 함수는 QString::contains()을 오버로드합니다.
qsizetype QString::count(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 문자열에서 “ str ”이라는 문자열이 (중복될 수 있는) 몇 번 나타나는지 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
contains() 및 indexOf()도 참조하십시오 .
qsizetype QString::count(const QRegularExpression &re) const
re 정규 표현식이 문자열 내에서 일치하는 횟수를 반환합니다.
역사적인 이유로 인해 이 함수는 중복된 일치 항목도 계산하므로, 아래 예제에서는 "ana" 또는 "ama"가 4번 나타납니다:
QString str = "banana and panama";
str.count(QRegularExpression("a[nm]a")); // returns 4이러한 동작은 QRegularExpressionMatchIterator 를 사용하여 문자열 내의 일치 항목을 단순히 반복 처리하는 것과는 다릅니다.
이 함수는 ` QString::count()`을 오버로드합니다.
QRegularExpression::globalMatch()도 참조하십시오 .
qsizetype QString::count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
문자열 내에서 ch 문자가 나타나는 횟수를 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
이 함수는 QString::count()을 오버로드합니다.
contains() 및 indexOf()도 참조하십시오 .
[since 6.0] qsizetype QString::count(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 문자열 내에서 문자열 뷰 str 가 (중복될 수 있는) 몇 번 나타나는지 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
이 함수는 ` QString::count()`을 오버로드합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
contains() 및 indexOf()도 참조하십시오 .
QString::const_reverse_iterator QString::crbegin() const
문자열의 첫 번째 문자를 역순으로 가리키는 const STL 스타일의 역방향 이터레이터를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 ` QString `가 수정될 경우 무효화됩니다.
참조: ` begin()`, ` rbegin()`, ` rend()`.
QString::const_reverse_iterator QString::crend() const
문자열의 마지막 문자를 지나 바로 다음 위치에 있는, 역순으로 정렬된 상수 STL 스타일 역방향 이터레이터를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 QString 가 수정될 경우 무효화됩니다.
QChar *QString::data()
QString 에 저장된 데이터에 대한 포인터를 반환합니다. 이 포인터를 사용하여 문자열을 구성하는 각 문자에 접근하고 수정할 수 있습니다.
constData() 및 unicode()와 달리, 반환되는 데이터는 항상 '\0'로 끝납니다.
예시:
QString str = "Hello world";
QChar*data = str.data();
while (!data->isNull()) {
qDebug() << data->unicode();
++data;
}포인터는 문자열이 다른 방법으로 수정되지 않는 한 유효하다는 점에 유의하십시오. 읽기 전용 액세스의 경우, constData()은 딥 복사가 발생하지 않기 때문에 더 빠릅니다.
constData() 및 operator[]()도 참조하십시오 .
const QChar *QString::data() const
참고: 반환된문자열은 '\0'로 끝나지 않을 수 있습니다. 배열의 길이를 확인하려면 ` size()`를 사용하십시오.
이 함수는 오버로딩된 함수입니다.
fromRawData()도 참조하십시오 .
void QString::detach()
이 문자열의 데이터가 더 이상 다른 인스턴스와 공유되지 않도록 합니다.
QString::iterator QString::end()
문자열의 마지막 문자가 끝난 바로 다음 위치를 가리키는 STL 스타일의 이터레이터를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 ` QString `가 수정될 경우 무효화됩니다.
참조: ` begin()` 및 ` constEnd()`.
QString::const_iterator QString::end() const
이 함수는 ` QString::end()`를 오버로드합니다.
bool QString::endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
문자열이 s 로 끝나는 경우 true 을 반환하고, 그렇지 않은 경우 false 을 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우, 검색은 대소문자를 구분하며, 그렇지 않은 경우 대소문자를 구분하지 않습니다.
QString str = "Bananas";
str.endsWith("anas"); // returns true
str.endsWith("pple"); // returns falsestartsWith()도 참조하십시오 .
bool QString::endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
문자열이 c 로 끝나는 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
이 함수는 ` QString::endsWith()`을 오버로드합니다.
bool QString::endsWith(QLatin1StringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 함수는 ` QString::endsWith()`를 오버로드합니다.
[noexcept] bool QString::endsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
문자열이 “ str ”으로 끝나는 경우 “ true ”을 반환하고, 그렇지 않은 경우 “ false ”을 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우, 검색은 대소문자를 구분하며, 그렇지 않은 경우 대소문자를 구분하지 않습니다.
이 함수는 QString::endsWith()을 오버로드합니다.
startsWith()도 참조하십시오 .
[since 6.1] QString::iterator QString::erase(QString::const_iterator first, QString::const_iterator last)
문자열에서 [ first, last ) 범위에 속하는 문자들을 제거합니다. 마지막으로 삭제된 문자 바로 다음의 문자로 이동하는 이터레이터를 반환합니다(즉, 삭제 전 last 가 가리키던 문자).
이 함수는 Qt 6.1에서 도입되었습니다.
[since 6.5] QString::iterator QString::erase(QString::const_iterator it)
it 로 표시된 문자를 문자열에서 제거합니다. 삭제된 문자 바로 뒤에 오는 문자로 이동하는 이터레이터를 반환합니다.
QString c = "abcdefg";
auto it = c.erase(c.cbegin()); // c is now "bcdefg"; "it" points to "b"이 함수는 오버로드된 함수입니다.
이 함수는 Qt 6.5에서 도입되었습니다.
QString &QString::fill(QChar ch, qsizetype size = -1)
문자열의 모든 문자를 ch 문자로 설정합니다. size 가 -1(기본값)과 다를 경우, 문자열은 사전에 size 크기로 조정됩니다.
예:
QString str = "Berlin";
str.fill('z');
// str == "zzzzzz"
str.fill('A', 2);
// str == "AA"resize()도 참조하십시오 .
[since 6.0] QString QString::first(qsizetype n) &&
[since 6.0] QString QString::first(qsizetype n) const &
이 문자열의 처음 n 자를 포함하는 문자열을 반환합니다(즉, 이 문자열의 시작부터 인덱스 위치 n 에 있는 요소 직전까지를 포함하되, 해당 요소는 제외합니다).
참고: n < 0이거나 n > size()인 경우동작이 정의되지 않습니다.
이 함수들은 Qt 6.0에서 도입되었습니다.
last(), sliced(), startsWith(), chopped(), chop(), truncate() 및 slice()도 참조하십시오 .
[static] QString QString::fromCFString(CFStringRef string)
string 의 복사본을 포함하는 새로운 QString 객체를 생성합니다.
참고: 이 함수는 macOS 및 iOS에서만 사용할 수 있습니다.
[static, since 6.6] QString QString::fromEcmaString(emscripten::val jsString)
ECMAScript 문자열 ` jsString `을 ` QString`으로 변환합니다. 전달된 매개변수가 문자열이 아닌 경우 동작이 정의되지 않습니다.
이 함수는 Qt 6.6에서 도입되었습니다.
toEcmaString()도 참조하십시오 .
[static] QString QString::fromLatin1(const char *str, qsizetype size)
str 라는 Latin-1 문자열의 처음 size 자까지로 초기화된 QString 객체를 반환합니다.
size 가 -1 인 경우, 대신 strlen(str) 가 사용됩니다.
toLatin1(), fromUtf8(), fromLocal8Bit()도 참조하십시오 .
[static, since 6.0] QString QString::fromLatin1(QByteArrayView str)
Latin-1 문자열 str 으로 초기화된 QString 객체를 반환합니다.
참고: 바이트 배열에포함된 모든 null 바이트('\0')는 이 문자열에 포함되며, 유니코드 null 문자(U+0000)로 변환됩니다.
이 함수는 오버로드된 함수입니다.
이 함수는 Qt 6.0에서 도입되었습니다.
[static] QString QString::fromLatin1(const QByteArray &str)
Latin-1 문자열 str 으로 초기화된 QString 을 반환합니다.
참고: 바이트 배열에포함된 모든 null 바이트('\0')는 이 문자열에 포함되며, 유니코드 null 문자(U+0000)로 변환됩니다. 이 동작은 Qt 5.x와 다릅니다.
이 함수는 오버로드된 함수입니다.
[static] QString QString::fromLocal8Bit(const char *str, qsizetype size)
8비트 문자열 ` str`의 처음 ` size `개 문자로 초기화된 ` QString ` 객체를 반환합니다.
size 가 -1 인 경우, 대신 strlen(str) 가 사용됩니다.
유닉스 시스템에서 이는 fromUtf8()와 동일합니다. 애플 시스템에서 이 함수는 NSString.defaultCStringEncoding이나 CFStringGetSystemEncoding() 을 고려하지 않는다는 점에 유의하십시오. 이러한 함수는 일반적으로 구식인 "Western (Mac OS Roman)" 인코딩을 반환하는데, 이는 최신 애플 운영 체제에서는 사용해서는 안 됩니다. Windows에서는 시스템의 현재 코드 페이지가 사용됩니다.
toLocal8Bit(), fromLatin1(), fromUtf8()도 참조하십시오 .
[static, since 6.0] QString QString::fromLocal8Bit(QByteArrayView str)
str 라는 8비트 문자열로 초기화된 ` QString `를 반환합니다.
유닉스 시스템에서 이는 fromUtf8()과 동일합니다. Apple 시스템에서는 이 함수가 NSString.defaultCStringEncoding이나 CFStringGetSystemEncoding() 을 고려하지 않는다는 점에 유의하십시오. 이러한 함수들은 일반적으로 구식 "Western (Mac OS Roman)" 인코딩을 반환하는데, 이는 최신 Apple 운영 체제에서는 사용해서는 안 되는 인코딩입니다. Windows에서는 시스템의 현재 코드 페이지가 사용됩니다.
참고: 바이트 배열에있는 모든 null ('\0') 바이트는 이 문자열에 포함되며, 유니코드 null 문자(U+0000)로 변환됩니다.
이 함수는 오버로드된 함수입니다.
이 함수는 Qt 6.0에서 도입되었습니다.
[static] QString QString::fromLocal8Bit(const QByteArray &str)
str 라는 8비트 문자열로 초기화된 ` QString `를 반환합니다.
유닉스 시스템에서 이 함수는 fromUtf8()과 동일하게 작동합니다. 단, 애플 시스템에서는 이 함수가 NSString.defaultCStringEncoding이나 CFStringGetSystemEncoding() 을 고려하지 않는다는 점에 유의하십시오. 이 함수들은 일반적으로 구식인 "Western (Mac OS Roman)" 인코딩을 반환하는데, 이는 최신 애플 운영 체제에서는 사용해서는 안 되는 인코딩입니다. Windows에서는 시스템의 현재 코드 페이지가 사용됩니다.
참고: 바이트 배열에있는 모든 null ('\0') 바이트는 이 문자열에 포함되며, 유니코드 null 문자(U+0000)로 변환됩니다. 이 동작은 Qt 5.x와 다릅니다.
이 함수는 오버로드된 함수입니다.
[static] QString QString::fromNSString(const NSString *string)
string 의 NSString 사본을 포함하는 새로운 QString 객체를 생성합니다.
참고: 이 함수는 macOS 및 iOS에서만 사용할 수 있습니다.
[static, since 6.10] QString QString::fromRawData(const char16_t *unicode, qsizetype size)
배열 unicode 의 처음 size 개 유니코드 문자를 사용하는 QString 객체를 생성합니다. unicode 의 데이터는 복사되지 않습니다. 호출자는 QString (또는 그 수정되지 않은 복사본)이 존재하는 한 unicode 가 삭제되거나 수정되지 않을 것임을 보장할 수 있어야 합니다.
QString 또는 그 복사본을 수정하려는 모든 시도는 데이터의 심층 복사(deep copy)를 생성하게 되어, 원시 데이터가 수정되지 않도록 보장합니다.
다음은 데이터를 QString 로 복사할 필요 없이 메모리 내의 원시 데이터에 대해 QRegularExpression 를 사용할 수 있는 예시입니다:
QRegularExpression pattern("\u00A4");
static const char16_t unicode[] = {
0x005A, 0x007F, 0x00A4, 0x0060,
0x1009, 0x0020, 0x0020};
QString str = QString::fromRawData(unicode, std::size(unicode));
if (str.contains(pattern)) {
// ...
}경고: fromRawData()로 생성된문자열은 원시 데이터의 위치 size 에 '\0' 문자가 포함되어 있지 않는 한 '\0'로 끝나지 않습니다. 즉, unicode()는 '\0'로 끝나는 문자열을 반환하지 않습니다(utf16()은 원시 데이터를 복사하는 대가를 치르면서 반환합니다).
이 함수는 Qt 6.10에서 도입되었습니다.
fromUtf16(), setRawData(), data(), constData(), nullTerminate() 및 nullTerminated()도 참조하십시오 .
[static] QString QString::fromRawData(const QChar *unicode, qsizetype size)
이것은 오버로드된 함수입니다.
[static] QString QString::fromStdString(const std::string &str)
str 문자열의 복사본을 반환합니다. 주어진 문자열은 UTF-8로 인코딩된 것으로 간주되며, fromUtf8() 함수를 사용하여 QString 로 변환됩니다.
fromLatin1(), fromLocal8Bit(), fromUtf8() 및 QByteArray::fromStdString()도 참조하십시오 .
[static] QString QString::fromStdU16String(const std::u16string &str)
str 문자열의 복사본을 반환합니다. 주어진 문자열은 UTF-16으로 인코딩된 것으로 간주되며, fromUtf16() 함수를 사용하여 QString 로 변환됩니다.
fromUtf16(), fromStdWString(), fromStdU32String()도 참조하십시오 .
[static] QString QString::fromStdU32String(const std::u32string &str)
str 문자열의 복사본을 반환합니다. 주어진 문자열은 UTF-32로 인코딩된 것으로 간주되며, fromUcs4() 함수를 사용하여 QString 로 변환됩니다.
fromUcs4(), fromStdWString(), fromStdU16String()도 참조하십시오 .
[static] QString QString::fromStdWString(const std::wstring &str)
str 문자열의 복사본을 반환합니다. wchar_t의 크기가 2바이트인 경우(예: Windows) 주어진 문자열은 utf16으로 인코딩된 것으로 간주되며, wchar_t의 크기가 4바이트인 경우(대부분의 Unix 시스템) ucs4로 인코딩된 것으로 간주됩니다.
fromUtf16(), fromLatin1(), fromLocal8Bit(), fromUtf8(), fromUcs4(), fromStdU16String() 및 fromStdU32String()도 참조하십시오 .
[static] QString QString::fromUcs4(const char32_t *unicode, qsizetype size = -1)
UTF-32로 인코딩된 유니코드 문자열 unicode 의 처음 size 자 문자로 초기화된 QString 객체를 반환합니다.
size 가 -1(기본값)인 경우, unicode 는 '\0'로 끝나야 합니다.
toUcs4(), fromUtf16(), utf16(), setUtf16(), fromWCharArray(), fromStdU32String()도 참조하십시오 .
[static] QString QString::fromUtf8(const char *str, qsizetype size)
UTF-8 문자열 str 의 첫 size 바이트로 초기화된 QString 객체를 반환합니다.
size 가 -1 인 경우, 대신 strlen(str) 가 사용됩니다.
UTF-8은 유니코드 코덱이며, QString 와 같은 유니코드 문자열의 모든 문자를 표현할 수 있습니다. 그러나 UTF-8에서는 유효하지 않은 시퀀스가 발생할 수 있으며, 이러한 시퀀스가 발견되면 하나 이상의 "대체 문자"로 대체되거나 생략됩니다. 여기에는 비유니코드 시퀀스, 비문자, 과도하게 긴 시퀀스 또는 UTF-8로 인코딩된 대리 코드포인트가 포함됩니다.
이 함수는 들어오는 데이터 내의 모든 UTF-8 문자가 올바르게 종료되어 있는 한, 들어오는 데이터를 증분 방식으로 처리하는 데 사용할 수 있습니다. 문자열 끝에 종료되지 않은 문자가 있으면 대체되거나 생략됩니다. 상태 기반 디코딩을 수행하려면 QStringDecoder 를 사용하십시오.
toUtf8(), fromLatin1(), fromLocal8Bit()도 참조하십시오 .
[static, since 6.0] QString QString::fromUtf8(QByteArrayView str)
UTF-8 문자열 ` str`으로 초기화된 ` QString `을 반환합니다.
참고: 바이트 배열에포함된 null('\0') 바이트는 이 문자열에 포함되며, 유니코드 null 문자(U+0000)로 변환됩니다.
이 함수는 오버로드된 함수입니다.
이 함수는 Qt 6.0에서 도입되었습니다.
[static] QString QString::fromUtf8(const QByteArray &str)
UTF-8 문자열 str 으로 초기화된 QString 를 반환합니다.
참고: 바이트 배열에포함된 null 바이트('\0')는 이 문자열에 포함되며, 유니코드 null 문자(U+0000)로 변환됩니다. 이 동작은 Qt 5.x와 다릅니다.
이 함수는 오버로드된 함수입니다.
[static, since 6.1] QString QString::fromUtf8(const char8_t *str)
이 오버로드는 C++20 모드로 컴파일할 때만 사용할 수 있습니다.
이것은 오버로드된 함수입니다.
이 함수는 Qt 6.1에서 도입되었습니다.
[static, since 6.0] QString QString::fromUtf8(const char8_t *str, qsizetype size)
이 오버로드는 C++20 모드로 컴파일할 때만 사용할 수 있습니다.
이 함수는 오버로드된 함수입니다.
이 함수는 Qt 6.0에서 도입되었습니다.
[static] QString QString::fromUtf16(const char16_t *unicode, qsizetype size = -1)
Unicode 문자열 unicode (ISO-10646-UTF-16 인코딩)의 처음 size 자까지로 초기화된 QString 객체를 반환합니다.
size 가 -1(기본값)인 경우, unicode 는 '\0'로 끝나야 합니다.
이 함수는 바이트 순서 표시(BOM)가 있는지 확인합니다. BOM이 없는 경우 호스트 바이트 순서가 사용된 것으로 간주합니다.
이 함수는 다른 유니코드 변환에 비해 속도가 느립니다. 가능하면 QString(const QChar *, qsizetype) 또는 QString(const QChar *)를 사용하십시오.
QString 유니코드 데이터의 딥 복사본을 만듭니다.
utf16(), setUtf16() 및 fromStdU16String()도 참조하십시오 .
[static] QString QString::fromWCharArray(const wchar_t *string, qsizetype size = -1)
string 가 가리키는 wchar_t 배열의 처음 size 코드 유닛을 읽어와 유니코드로 변환한 후, 그 결과를 QString 로 반환합니다. wchar_t 에서 사용하는 인코딩은 타입의 크기가 4바이트인 경우 UTF-32로, 2바이트인 경우 UTF-16으로 간주됩니다.
size 가 -1(기본값)인 경우, string 는 반드시 '\0'로 끝나야 합니다.
fromUtf16(), fromLatin1(), fromLocal8Bit(), fromUtf8(), fromUcs4() 및 fromStdWString()도 참조하십시오 .
QChar &QString::front()
문자열의 첫 번째 문자에 대한 참조를 반환합니다. ` operator[](0)`와 동일합니다.
이 함수는 STL 호환성을 위해 제공됩니다.
경고: 빈 문자열에 대해 이 함수를호출하면 정의되지 않은 동작이 발생합니다.
back(), at(), operator[]()도 참조하십시오 .
QChar QString::front() const
문자열의 첫 번째 문자를 반환합니다. ` at(0)`와 동일합니다.
이 함수는 STL 호환성을 위해 제공됩니다.
경고: 빈 문자열에 대해 이 함수를호출하면 정의되지 않은 동작이 발생합니다.
참조: back(), at(), operator[]().
qsizetype QString::indexOf(QLatin1StringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 문자열에서 str 로 해석된 Latin-1 문자열이 처음 나타나는 인덱스 위치를 반환하며, 검색은 인덱스 위치 from 부터 앞으로 진행됩니다. str 가 발견되지 않으면 -1을 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
예시:
QString x = "sticky question";
QString y = "sti";
x.indexOf(y); // returns 0
x.indexOf(y, 1); // returns 10
x.indexOf(y, 10); // returns 10
x.indexOf(y, 11); // returns -1from 가 -1이면 검색은 마지막 문자로부터 시작되며, -2이면 두 번째 마지막 문자로부터 시작하는 식입니다.
lastIndexOf(), contains(), count()도 참조하십시오 .
qsizetype QString::indexOf(const QRegularExpression &re, qsizetype from = 0, QRegularExpressionMatch *rmatch = nullptr) const
인덱스 위치 from 부터 앞으로 검색하여, 문자열 내에서 정규식 re 의 첫 번째 일치 항목의 인덱스 위치를 반환합니다. re 가 어디에도 일치하지 않으면 -1을 반환합니다.
일치하는 부분이 있고 rmatch 가 nullptr 와 다를 경우, 일치 결과를 rmatch 가 가리키는 QRegularExpressionMatch 객체에 기록합니다.
예시:
QString str = "the minimum";
str.indexOf(QRegularExpression("m[aeiou]"), 0); // returns 4
QRegularExpressionMatch match;
str.indexOf(QRegularExpression("m[aeiou]"), 0, &match); // returns 4
// match.captured() == miqsizetype QString::indexOf(const QString &str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 문자열에서 “ str ”가 처음 나타나는 위치의 인덱스를 반환하며, 검색은 인덱스 위치 from 부터 앞으로 진행됩니다. “ str ”가 발견되지 않으면 -1을 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
예시:
QString x = "sticky question";
QString y = "sti";
x.indexOf(y); // returns 0
x.indexOf(y, 1); // returns 10
x.indexOf(y, 10); // returns 10
x.indexOf(y, 11); // returns -1from 가 -1이면 검색은 마지막 문자로부터 시작하고, -2이면 그 다음 마지막 문자로부터 시작하며, 이와 같은 방식으로 진행됩니다.
lastIndexOf(), contains(), count()도 참조하십시오 .
qsizetype QString::indexOf(QChar ch, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 문자열에서 ch 문자가 처음 나타나는 인덱스 위치를 반환하며, 검색은 from 인덱스 위치부터 앞으로 진행됩니다. ch 가 발견되지 않으면 -1을 반환합니다.
이 함수는 QString::indexOf()을 오버로드합니다.
[noexcept] qsizetype QString::indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 문자열에서 “ str ”라는 문자열이 처음 나타나는 인덱스 위치를 반환하며, 검색은 인덱스 위치 “ from ”부터 앞으로 진행됩니다. “ str ”가 발견되지 않으면 -1을 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
from 가 -1이면 검색은 마지막 문자로부터 시작하고, -2이면 마지막에서 두 번째 문자로부터 시작하는 식으로 진행됩니다.
이 함수는 QString::indexOf()을 오버로드합니다.
QStringView::indexOf(), lastIndexOf(), contains(), count()도 참조하십시오 .
QString &QString::insert(qsizetype position, const QString &str)
지정된 인덱스 position 에 문자열 str 을 삽입하고, 이 문자열에 대한 참조를 반환합니다.
예시:
이 문자열은 삽입을 수용하기 위해 길이가 늘어납니다. position 이 문자열의 끝을 넘어가는 경우, position 에 도달할 때까지 공백 문자가 문자열 끝에 추가된 후, str 가 이어집니다.
append(), prepend(), replace() 및 remove()도 참조하십시오 .
QString &QString::insert(qsizetype position, QChar ch)
문자열의 지정된 인덱스 position 위치에 ch 을 삽입합니다.
이 삽입을 수용하기 위해 문자열의 길이가 늘어납니다. 만약 position 이 문자열의 끝을 넘어가는 경우, 이 position 에 도달할 수 있도록 공백 문자가 문자열 끝에 추가된 후, ch 이 이어집니다.
이 함수는 QString::insert()을 오버로드합니다.
QString &QString::insert(qsizetype position, QLatin1StringView str)
str 에서 인식한 Latin-1 문자열을 지정된 인덱스 position 에 삽입합니다.
이 문자열은 삽입을 수용하기 위해 길이가 늘어납니다. position 가 문자열의 끝을 넘어가는 경우, position 에 도달할 때까지 공백 문자가 문자열 끝에 추가된 후, str 가 이어집니다.
이 함수는 QString::insert()을 오버로드합니다.
[since 6.0] QString &QString::insert(qsizetype position, QStringView str)
지정된 인덱스 position 에 문자열 뷰 str 를 삽입하고, 이 문자열에 대한 참조를 반환합니다.
이 문자열은 삽입을 수용하기 위해 길이가 늘어납니다. position 가 문자열의 끝을 넘어가는 경우, 이 position 에 도달할 때까지 공백 문자가 문자열 끝에 추가된 후, str 가 이어집니다.
이 함수는 QString::insert()을 오버로드합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
[since 6.5] QString &QString::insert(qsizetype position, QUtf8StringView str)
지정된 인덱스 position 에 UTF-8 문자열 뷰 str 를 삽입합니다.
참고: 가변 폭의 UTF-8 인코딩 문자열 데이터를삽입하는 것은 개념적으로 UTF-16 (QStringView)이나 Latin-1 (QLatin1StringView)과 같은 고정 폭 문자열 데이터를 삽입하는 것보다 속도가 느리므로, 가급적 적게 사용해야 합니다.
이 문자열은 삽입 내용을 수용하기 위해 길이가 늘어납니다. position 가 문자열의 끝을 넘어가는 경우, 이 position 에 도달할 때까지 공백 문자가 문자열 끝에 추가된 후, str 가 이어집니다.
이 함수는 QString::insert()을 오버로드합니다.
이 함수는 Qt 6.5에서 도입되었습니다.
QString &QString::insert(qsizetype position, const QByteArray &str)
str 의 내용을 UTF-8로 해석하고, 이를 인코딩한 유니코드 문자열을 지정된 인덱스 position 에 삽입한 후, 이 문자열에 대한 참조를 반환합니다.
이 문자열은 삽입을 수용하기 위해 길이가 늘어납니다. position 가 문자열의 끝을 넘어가는 경우, 이 위치 position 에 도달할 때까지 공백 문자가 문자열 끝에 추가된 후, str 가 뒤따릅니다.
QT_NO_CAST_FROM_ASCII 가 정의된 경우 이 함수는 사용할 수 없습니다.
이 함수는 QString::insert()을 오버로드합니다.
QString &QString::insert(qsizetype position, const char *str)
지정된 인덱스 position 에 C 문자열 str 을 삽입하고, 이 문자열에 대한 참조를 반환합니다.
이 문자열은 삽입을 수용하기 위해 길이가 늘어납니다. 만약 position 가 문자열의 끝을 넘어가는 경우, 이 position 에 도달할 때까지 공백 문자가 문자열 끝에 추가된 후, str 가 이어집니다.
QT_NO_CAST_FROM_ASCII 가 정의된 경우 이 함수는 사용할 수 없습니다.
이 함수는 QString::insert()를 오버로드합니다.
QString &QString::insert(qsizetype position, const QChar *unicode, qsizetype size)
QChar 배열 unicode 의 처음 size 자리를, 문자열 내의 지정된 인덱스 position 위치에 삽입합니다.
이 삽입을 수용하기 위해 문자열의 길이가 늘어납니다. position 가 문자열의 끝을 넘어가는 경우, 이 position 에 도달할 때까지 공백 문자가 문자열에 추가된 다음, QChar 배열 unicode 의 size 문자가 이어서 삽입됩니다.
이 함수는 QString::insert()을 오버로드합니다.
[constexpr noexcept] bool QString::isEmpty() const
문자열에 문자가 없으면 ` true `를 반환하고, 그렇지 않으면 ` false`를 반환합니다.
예:
QString().isEmpty(); // returns true
QString("").isEmpty(); // returns true
QString("x").isEmpty(); // returns false
QString("abc").isEmpty(); // returns falsesize()도 참조하십시오 .
bool QString::isLower() const
문자열이 소문자인 경우, 즉 toLower() 폴딩 결과와 동일한 경우 true 를 반환합니다.
단, 이것이 문자열에 대문자가 전혀 포함되어 있지 않다는 것을 의미하지는 않습니다 (일부 대문자에는 소문자 변환 형태가 없으므로, toLower()를 적용해도 변경되지 않습니다). 자세한 내용은 유니코드 표준 3.13절을 참조하십시오.
QChar::toLower() 및 isUpper()도 참조하십시오 .
[constexpr] bool QString::isNull() const
이 문자열이 null인 경우 ` true `을 반환하고, 그렇지 않은 경우 ` false`을 반환합니다.
예시:
QString().isNull(); // returns true
QString("").isNull(); // returns false
QString("abc").isNull(); // returns falseQt는 역사적인 이유로 null 문자열과 빈 문자열을 구분합니다. 대부분의 애플리케이션에서 중요한 것은 문자열에 데이터가 포함되어 있는지 여부이며, 이는 isEmpty() 함수를 사용하여 확인할 수 있습니다.
참조: isEmpty()
bool QString::isRightToLeft() const
문자열이 오른쪽에서 왼쪽으로 읽히는 경우 true 를 반환합니다.
QStringView::isRightToLeft()도 참조하십시오 .
bool QString::isUpper() const
문자열이 대문자로만 구성되어 있는 경우, 즉 toUpper() 폴딩 결과와 동일한 경우 true 을 반환합니다.
단, 이것이 문자열에 소문자가 전혀 포함되어 있지 않다는 것을 의미하지는 않습니다 (일부 소문자는 대문자 변환이 없으므로 toUpper()에 의해 변경되지 않습니다). 자세한 내용은 유니코드 표준 3.13절을 참조하십시오.
QChar::toUpper() 및 isLower()도 참조하십시오 .
[noexcept] bool QString::isValidUtf16() const
문자열에 유효한 UTF-16 인코딩 데이터가 포함되어 있으면 ` true `를 반환하고, 그렇지 않으면 ` false `를 반환합니다.
이 함수는 데이터에 대한 특별한 유효성 검사를 수행하지 않으며, 단지 UTF-16에서 성공적으로 디코딩될 수 있는지 여부만 확인합니다. 데이터는 호스트 바이트 순서로 되어 있는 것으로 간주되며, BOM의 유무는 의미가 없습니다.
QStringView::isValidUtf16()도 참조하십시오 .
[since 6.0] QString QString::last(qsizetype n) &&
[since 6.0] QString QString::last(qsizetype n) const &
이 문자열의 마지막 n 문자를 포함하는 문자열을 반환합니다.
참고: ` n `가 0보다 작거나 ` n `가 ` size()`보다 클 경우동작이 정의되지 않습니다.
이 함수들은 Qt 6.0에서 도입되었습니다.
first(), sliced(), endsWith(), chopped(), chop(), truncate() 및 slice()도 참조하십시오 .
qsizetype QString::lastIndexOf(const QRegularExpression &re, qsizetype from, QRegularExpressionMatch *rmatch = nullptr) const
문자열 내에서 정규식 re 의 마지막 일치 부분 중, 인덱스 위치 from 보다 앞쪽에서 시작되는 부분의 인덱스 위치를 반환합니다.
from 가 -1이면 검색은 마지막 문자로부터 시작하고, -2이면 마지막에서 두 번째 문자로부터 시작하는 식으로 진행됩니다.
re 이 어디에서도 일치하지 않으면 -1을 반환합니다.
일치하는 부분이 있고 ` rmatch `가 ` nullptr`와 다를 경우, ` rmatch`가 가리키는 ` QRegularExpressionMatch ` 객체에 일치 결과를 기록합니다.
예시:
QString str = "the minimum";
str.lastIndexOf(QRegularExpression("m[aeiou]")); // returns 8
QRegularExpressionMatch match;
str.lastIndexOf(QRegularExpression("m[aeiou]"), -1, &match); // returns 8
// match.captured() == mu참고: 정규식 일치 알고리즘의 작동 방식에따라 , 이 함수는 실제로 문자열의 시작 부분부터 from 위치에 도달할 때까지 반복적으로 일치를 시도합니다.
참고: 0개의 문자와 일치할 수도 있는 정규 표현식 re 을 검색할때 , from 에 음수 값을 지정하면 데이터 끝 부분의 일치 결과가 검색에서 제외됩니다. 비록 -1 이 일반적으로 문자열 끝에서부터 검색하는 것으로 여겨지지만, 끝 부분의 일치는 마지막 문자가 지난 후에 나타나므로 제외됩니다. 이러한 마지막 빈 일치 부분을 포함시키려면, ` from `에 양수 값을 지정하거나 ` from ` 매개변수를 아예 생략하십시오.
qsizetype QString::lastIndexOf(const QString &str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 문자열에서 “ str ”라는 문자열이 마지막으로 나타나는 인덱스 위치를 반환하며, 검색은 인덱스 위치 “ from ”부터 역방향으로 진행됩니다.
from 가 -1이면 검색은 마지막 문자로부터 시작하고, -2이면 두 번째 마지막 문자로부터 시작하며, 이와 같은 방식으로 진행됩니다.
str 가 발견되지 않으면 -1을 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
예:
QString x = "crazy azimuths";
QString y = "az";
x.lastIndexOf(y); // returns 6
x.lastIndexOf(y, 6); // returns 6
x.lastIndexOf(y, 5); // returns 2
x.lastIndexOf(y, 1); // returns -1참고: 길이가 0인 ` str`을 검색할때 , ` from`을 음수로 설정하면 데이터 끝 부분의 일치 항목이 검색에서 제외됩니다. 비록 ` -1 `이 일반적으로 문자열 끝에서부터 검색하는 것으로 여겨지더라도, 끝 부분의 일치 항목은 마지막 문자 뒤에 위치하므로 제외됩니다. 이러한 마지막 빈 일치 부분을 포함하려면, from 에 양수 값을 지정하거나 from 매개변수를 아예 생략하십시오.
indexOf(), contains() 및 count()도 참조하십시오 .
[noexcept, since 6.3] qsizetype QString::lastIndexOf(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 함수는 ` QString::lastIndexOf()`을 오버로드합니다.
이 함수는 Qt 6.3에서 도입되었습니다.
[since 6.2] qsizetype QString::lastIndexOf(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 문자열에서 “ str ”이 마지막으로 나타나는 위치의 인덱스를 반환합니다. “ str ”이 발견되지 않으면 -1을 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
예:
QString x = "crazy azimuths";
QString y = "az";
x.lastIndexOf(y); // returns 6
x.lastIndexOf(y, 6); // returns 6
x.lastIndexOf(y, 5); // returns 2
x.lastIndexOf(y, 1); // returns -1이 함수는 QString::lastIndexOf()을 오버로드합니다.
이 함수는 Qt 6.2에서 도입되었습니다.
indexOf(), contains() 및 count()도 참조하십시오 .
[noexcept, since 6.2] qsizetype QString::lastIndexOf(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 문자열에서 “ str ” 문자열이 마지막으로 나타나는 인덱스 위치를 반환합니다. “ str ”을 찾을 수 없는 경우 -1을 반환합니다.
cs 가 Qt::CaseSensitive 인 경우(기본값), 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
이 함수는 QString::lastIndexOf()을 오버로드합니다.
이 함수는 Qt 6.2에서 도입되었습니다.
indexOf(), contains() 및 count()도 참조하십시오 .
[since 6.2] qsizetype QString::lastIndexOf(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const
문자열 내에서 정규식 re 의 마지막 일치 위치 인덱스를 반환합니다. re 가 어디에도 일치하지 않으면 -1을 반환합니다.
일치 성공 시, rmatch 가 nullptr 와 다를 경우, rmatch 가 가리키는 QRegularExpressionMatch 객체에 일치 결과를 기록합니다.
예시:
QString str = "the minimum";
str.lastIndexOf(QRegularExpression("m[aeiou]")); // returns 8
QRegularExpressionMatch match;
str.lastIndexOf(QRegularExpression("m[aeiou]"), -1, &match); // returns 8
// match.captured() == mu참고: 정규식 일치 알고리즘의 작동 방식에따라 , 이 함수는 문자열의 시작 부분부터 끝까지 도달할 때까지 실제로 반복적으로 일치를 시도합니다.
이 함수는 ` QString::lastIndexOf()`을 오버로드합니다.
이 함수는 Qt 6.2에서 도입되었습니다.
[since 6.2] qsizetype QString::lastIndexOf(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 문자열에서 “ str ”이라는 문자열이 마지막으로 나타나는 위치의 인덱스를 반환합니다. “ str ”이 발견되지 않으면 -1을 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
예시:
QString x = "crazy azimuths";
QString y = "az";
x.lastIndexOf(y); // returns 6
x.lastIndexOf(y, 6); // returns 6
x.lastIndexOf(y, 5); // returns 2
x.lastIndexOf(y, 1); // returns -1이 함수는 QString::lastIndexOf()을 오버로드합니다.
이 함수는 Qt 6.2에서 도입되었습니다.
indexOf(), contains() 및 count()도 참조하십시오 .
qsizetype QString::lastIndexOf(QChar ch, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 문자열에서 ‘ ch ’ 문자가 마지막으로 나타나는 위치의 인덱스를, 인덱스 위치 from 에서 역방향으로 검색하여 반환합니다.
이 함수는 QString::lastIndexOf()을 오버로드합니다.
qsizetype QString::lastIndexOf(QLatin1StringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 문자열에서 ` str ` 함수가 인식한 Latin-1 문자열이 마지막으로 나타나는 인덱스 위치를 반환하며, 이때 인덱스 위치 ` from`부터 역방향으로 검색합니다.
from 가 -1인 경우 검색은 마지막 문자로부터 시작하고, -2인 경우 두 번째 마지막 문자로부터 시작하며, 이와 같은 방식으로 진행됩니다.
str 를 찾지 못하면 -1을 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
예시:
QString x = "crazy azimuths";
QString y = "az";
x.lastIndexOf(y); // returns 6
x.lastIndexOf(y, 6); // returns 6
x.lastIndexOf(y, 5); // returns 2
x.lastIndexOf(y, 1); // returns -1참고: 길이가 0인 ` str`을 검색할때 , ` from`을 음수로 설정하면 데이터 끝 부분의 일치 항목이 검색에서 제외됩니다. 비록 ` -1 `이 일반적으로 문자열 끝에서부터 검색하는 것으로 여겨지더라도, 끝 부분의 일치 항목은 마지막 문자 뒤에 위치하므로 제외됩니다. 이러한 마지막 빈 일치 부분을 포함시키려면, ` from `에 양수 값을 지정하거나 ` from ` 매개변수를 아예 생략하십시오.
이 함수는 QString::lastIndexOf()을 오버로드합니다.
indexOf(), contains(), count()도 참조하십시오 .
[noexcept] qsizetype QString::lastIndexOf(QStringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 문자열에서 문자열 뷰 ` str `가 마지막으로 나타나는 인덱스 위치를 반환하며, 인덱스 위치 ` from`부터 역방향으로 검색합니다.
from 가 -1이면 검색은 마지막 문자로부터 시작하고, -2이면 두 번째 마지막 문자로부터 시작하는 식으로 진행됩니다.
str 가 발견되지 않으면 -1을 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우, 검색은 대소문자를 구분하며, 그렇지 않은 경우 대소문자를 구분하지 않습니다.
참고: 길이가 0인 str 를 검색할때 , 음수의 from 을 사용하면 데이터 끝의 일치 항목이 검색에서 제외됩니다. 비록 -1 가 일반적으로 문자열의 끝에서 검색하는 것으로 여겨지지만, 끝의 일치 항목은 마지막 문자 뒤에 있으므로 제외됩니다. 이러한 마지막 빈 일치를 포함하려면, ` from `에 양의 값을 지정하거나 ` from ` 매개변수를 아예 생략하십시오.
이 함수는 QString::lastIndexOf()를 오버로드합니다.
indexOf(), contains(), count()도 참조하십시오 .
이 문자열의 가장 왼쪽 n 개 문자를 포함하는 부분 문자열을 반환합니다(즉, 이 문자열의 시작부터 인덱스 위치 n 에 있는 요소 직전까지의 문자열을 의미합니다. 해당 요소는 포함되지 않습니다).
n 가 범위 밖일 수 없다는 것을 알고 있다면, 속도가 더 빠르기 때문에 새 코드에서는 대신 first()을 사용하십시오.
n 가 size()보다 크거나 같거나, 0보다 작은 경우 문자열 전체가 반환됩니다.
first(), last(), startsWith(), chopped(), chop() 및 truncate()도 참조하십시오 .
QString QString::leftJustified(qsizetype width, QChar fill = u' ', bool truncate = false) const
width 크기의 문자열을 반환하며, 이 문자열은 fill 문자로 채워진 형태입니다.
truncate 가 false 이고, 해당 문자열의 size() 값이 width 보다 크면, 반환되는 문자열은 해당 문자열의 복사본입니다.
truncate 가 true 이고, 문자열의 size()가 width 보다 크면, 위치 width 이후의 문자열 복사본에서 해당 위치 이후의 모든 문자가 제거되고, 그 복사본이 반환됩니다.
QString str = "Pineapple";
str = str.leftJustified(5, '.', true); // str == "Pinea"rightJustified()도 참조하십시오 .
[constexpr noexcept] qsizetype QString::length() const
이 문자열의 문자 수를 반환합니다. ` size()`과 동일합니다.
resize()도 참조하십시오 .
[static] int QString::localeAwareCompare(const QString &s1, const QString &s2)
s1 와 s2 를 비교하여, s1 가 s2 보다 작거나 같거나 클 경우 0보다 작거나 같거나 큰 정수를 반환합니다.
비교는 로케일 및 플랫폼에 따라 수행됩니다. 이 함수를 사용하여 사용자에게 정렬된 문자열 목록을 표시할 수 있습니다.
compare(), QLocale, Comparing Strings도 참조하십시오 .
[since 6.0] int QString::localeAwareCompare(QStringView other) const
이 문자열을 ` other ` 문자열과 비교하여, 이 문자열이 ` other ` 문자열보다 작거나, 같거나, 크면 각각 0보다 작거나, 같거나, 큰 정수를 반환합니다.
비교는 로케일 및 플랫폼에 따라 수행됩니다. 이 함수를 사용하여 사용자에게 정렬된 문자열 목록을 표시할 수 있습니다.
localeAwareCompare(*this, other) 와 동일합니다.
이 함수는 QString::localeAwareCompare()을 오버로드합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
Comparing Strings도 참조하십시오 .
int QString::localeAwareCompare(const QString &other) const
이 문자열을 other 문자열과 비교하여, 이 문자열이 other 문자열보다 작거나, 같거나, 크면 각각 0보다 작거나, 같거나, 큰 정수를 반환합니다.
비교는 로케일 및 플랫폼에 따라 수행됩니다. 이 함수를 사용하여 사용자에게 정렬된 문자열 목록을 표시할 수 있습니다.
localeAwareCompare(*this, other) 와 동일합니다.
이 함수는 ` QString::localeAwareCompare()`를 오버로드합니다.
Comparing Strings도 참조하십시오 .
[static, since 6.0] int QString::localeAwareCompare(QStringView s1, QStringView s2)
s1 와 s2 를 비교하여, s1 가 s2 보다 작거나, 같거나, 크면 각각 0보다 작거나, 같거나, 큰 정수를 반환합니다.
비교는 로케일 및 플랫폼에 따라 다르게 수행됩니다. 이 함수를 사용하여 사용자에게 정렬된 문자열 목록을 표시할 수 있습니다.
이 함수는 ` QString::localeAwareCompare()`을 오버로드합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
Comparing Strings도 참조하십시오 .
[static constexpr noexcept, since 6.8] qsizetype QString::maxSize()
[constexpr noexcept, since 6.8] qsizetype QString::max_size() const
이 함수는 문자열이 이론적으로 담을 수 있는 요소의 최대 개수를 반환합니다. 실제로는 시스템에서 사용할 수 있는 메모리 용량에 따라 이 개수가 훨씬 더 적을 수 있습니다.
이 함수들은 Qt 6.8에서 도입되었습니다.
QString QString::mid(qsizetype position, qsizetype n = -1) &&
QString QString::mid(qsizetype position, qsizetype n = -1) const &
n 지정된 position 인덱스부터 시작하여, 인덱스 위치 position + n까지(해당 인덱스 위치의 요소는 제외)의 해당 문자열을 포함하는 문자열을 반
position 와 n 가 범위를 벗어날 수 없다는 것을 알고 있다면, 속도가 더 빠르므로 새 코드에서는 대신 sliced()를 사용하십시오.
position 인덱스가 문자열의 길이를 초과하면 빈 문자열을 반환합니다. 지정된 position 위치부터 시작하는 문자열에 n 보다 적은 수의 문자가 있거나, n 가 -1(기본값)인 경우, 이 함수는 지정된 position 위치부터 사용 가능한 모든 문자를 반환합니다.
first(), last(), sliced(), chopped(), chop(), truncate(), slice()함수도 참조하십시오 .
QString QString::normalized(QString::NormalizationForm mode, QChar::UnicodeVersion version = QChar::Unicode_Unassigned) const
유니코드 표준의 지정된 version 에 따라, 지정된 유니코드 정규화 방식 mode 으로 변환된 문자열을 반환합니다.
[since 6.10] QString &QString::nullTerminate()
이 문자열 데이터가 널 종결되지 않은 경우, 이 메서드는 데이터의 심층 복사본을 생성하고 이를 널 종결 처리합니다.
QString 는 기본적으로 null-terminated이지만, 일부 경우(예: fromRawData() 사용 시) 문자열 데이터가 반드시 \0 문자로 끝나는 것은 아니며, 이는 null-terminated 문자열을 기대하는 메서드를 호출할 때 문제가 될 수 있습니다.
이 함수는 Qt 6.10에서 도입되었습니다.
nullTerminated(), fromRawData() 및 setRawData()도 참조하십시오 .
[since 6.10] QString QString::nullTerminated() &&
[since 6.10] QString QString::nullTerminated() const &
이 문자열의 복사본을 반환하며, 이 복사본은 항상 null로 종료됩니다.
이 함수들은 Qt 6.10에서 도입되었습니다.
nullTerminate(), fromRawData(), setRawData()도 참조하십시오 .
[static] QString QString::number(long n, int base = 10)
지정된 base 에 따라 숫자 n 에 해당하는 문자열을 반환합니다.
기본 기수는 10이며, 2에서 36 사이의 값이어야 합니다. 10 이외의 기수를 사용할 경우, ` n `는 부호 없는 정수로 처리됩니다.
서식 지정은 항상 QLocale::C, 즉 English/UnitedStates를 사용합니다. 숫자의 지역화된 문자열 표현을 얻으려면 적절한 로케일을 사용하여 QLocale::toString()를 사용하십시오.
long a = 63;
QString s = QString::number(a, 16); // s == "3f"
QString t = QString::number(a, 16).toUpper(); // t == "3F"setNum()도 참조하십시오 .
[static] QString QString::number(double n, char format = 'g', int precision = 6)
n 를 나타내는 문자열을 반환합니다.
n 를 나타내는 문자열을 반환하며, 이 문자열은 지정된 format 및 precision 에 따라 서식이 지정됩니다.
지수 형식의 경우, 지수의 부호가 표시되며 최소 두 자리의 자릿수를 가지며, 필요한 경우 지수 앞쪽에 0을 채워 넣습니다.
setNum(), QLocale::toString(), QLocale::FloatingPointPrecisionOption 및 Number formats도 참조하십시오 .
[static] QString QString::number(int n, int base = 10)
이것은 오버로드된 함수입니다.
[static] QString QString::number(qlonglong n, int base = 10)
이것은 오버로드된 함수입니다.
[static] QString QString::number(qulonglong n, int base = 10)
이것은 오버로드된 함수입니다.
[static] QString QString::number(uint n, int base = 10)
이것은 오버로드된 함수입니다.
[static] QString QString::number(ulong n, int base = 10)
이것은 오버로드된 함수입니다.
QString &QString::prepend(const QString &str)
이 문자열의 맨 앞에 “ str ” 문자열을 추가하고, 이 문자열에 대한 참조를 반환합니다.
이 작업은 일반적으로 매우 빠릅니다(상수 시간). 이는 ` QString `가 문자열 데이터의 맨 앞에 추가 공간을 미리 할당하므로, 매번 문자열 전체를 재할당하지 않고도 길이를 늘릴 수 있기 때문입니다.
예시:
QString &QString::prepend(QChar ch)
이 문자열의 맨 앞에 ch 문자를 추가합니다.
이 함수는 QString::prepend()을 오버로드합니다.
QString &QString::prepend(QLatin1StringView str)
str 가 인식하는 Latin-1 문자열을 이 문자열의 앞에 추가합니다.
이 함수는 QString::prepend()을 오버로드합니다.
[since 6.0] QString &QString::prepend(QStringView str)
이 문자열의 맨 앞에 문자열 뷰 ` str `를 추가하고, 이 문자열에 대한 참조를 반환합니다.
이 함수는 ` QString::prepend()`을 오버로드합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
[since 6.5] QString &QString::prepend(QUtf8StringView str)
이 문자열의 앞에 UTF-8 문자열 뷰 str 를 추가합니다.
이 함수는 QString::prepend()을 오버로드합니다.
이 함수는 Qt 6.5에서 도입되었습니다.
QString &QString::prepend(const QByteArray &ba)
이 문자열의 맨 앞에 바이트 배열 ` ba `을 추가합니다. 이 바이트 배열은 ` fromUtf8()` 함수를 사용하여 유니코드로 변환됩니다.
애플리케이션을 컴파일할 때 ` QT_NO_CAST_FROM_ASCII `를 정의하여 이 함수를 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 ` QObject::tr()`를 반드시 거치도록 보장하고자 할 때 유용할 수 있습니다.
이 함수는 QString::prepend()을 오버로드합니다.
QString &QString::prepend(const char *str)
이 문자열의 앞에 “ str ” 문자열을 추가합니다. const char 포인터는 fromUtf8() 함수를 사용하여 유니코드로 변환됩니다.
응용 프로그램을 컴파일할 때 ` QT_NO_CAST_FROM_ASCII `를 정의하여 이 함수를 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 ` QObject::tr()`를 반드시 거치도록 보장하고자 할 때 유용할 수 있습니다.
이 함수는 QString::prepend()을 오버로드합니다.
QString &QString::prepend(const QChar *str, qsizetype len)
QChar 배열 str 에 포함된 ‘ len ’ 문자를 이 문자열의 맨 앞에 추가하고, 이 문자열에 대한 참조를 반환합니다.
이 함수는 ` QString::prepend()`을 오버로드합니다.
void QString::push_back(const QString &other)
이 함수는 STL 호환성을 위해 제공되며, 주어진 other 문자열을 이 문자열의 끝에 추가합니다. 이는 append(other) 과 동일합니다.
append()도 참조하십시오 .
void QString::push_back(QChar ch)
지정된 ch 문자를 이 문자열의 끝에 추가합니다.
이 함수는 오버로드된 함수입니다.
void QString::push_front(const QString &other)
이 함수는 STL 호환성을 위해 제공되며, 지정된 other 문자열을 이 문자열의 맨 앞에 추가합니다. 이는 prepend(other) 과 동일합니다.
prepend()도 참조하십시오 .
void QString::push_front(QChar ch)
이 문자열의 맨 앞에 지정된 ch 문자를 추가합니다.
이 함수는 오버로드된 함수입니다.
QString::reverse_iterator QString::rbegin()
문자열의 첫 번째 문자를 역순으로 가리키는 STL 스타일의 역방향 이터레이터를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 QString 가 수정될 경우 무효화됩니다.
참조: begin(), crbegin(), rend().
QString::const_reverse_iterator QString::rbegin() const
이것은 오버로드된 함수입니다.
QString &QString::remove(const QRegularExpression &re)
문자열에서 정규식 re 이 나타나는 모든 부분을 제거하고, 해당 문자열에 대한 참조를 반환합니다. 예를 들어:
QString r = "Telephone";
r.remove(QRegularExpression("[aeiou]."));
// r == "The"요소 제거 시 문자열의 용량은 유지되며 할당된 메모리 양은 줄어들지 않습니다. 여분의 용량을 줄이고 가능한 한 많은 메모리를 해제하려면, 문자열 크기에 대한 마지막 변경이 끝난 후 squeeze()를 호출하십시오.
indexOf(), lastIndexOf() 및 replace()도 참조하십시오 .
QString &QString::remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive)
이 문자열에서 ‘ ch ’ 문자가 나타나는 모든 부분을 제거하고, 이 문자열에 대한 참조를 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
예:
이는 replace(ch, "", cs) 와 동일합니다.
요소를 제거해도 문자열의 용량은 유지되며 할당된 메모리 양은 줄어들지 않습니다. 여분의 용량을 줄이고 가능한 한 많은 메모리를 해제하려면, 문자열 크기를 마지막으로 변경한 후 ` squeeze()`를 호출하십시오.
replace()도 참조하십시오 .
QString &QString::remove(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive)
이 문자열에서 지정된 str 문자열이 나타나는 모든 부분을 제거하고, 이 문자열에 대한 참조를 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
이는 replace(str, "", cs) 와 동일합니다.
요소를 제거해도 문자열의 용량은 유지되며 할당된 메모리 양은 줄어들지 않습니다. 여분의 용량을 줄이고 가능한 한 많은 메모리를 확보하려면, 문자열 크기를 마지막으로 변경한 후 squeeze()를 호출하십시오.
replace()도 참조하십시오 .
QString &QString::remove(qsizetype position, qsizetype n)
지정된 position 인덱스부터 시작하여 문자열에서 n 문자를 제거하고, 해당 문자열에 대한 참조를 반환합니다.
지정된 position 인덱스가 문자열 내에 있지만, position + n 가 문자열의 끝을 넘어가는 경우, 문자열은 지정된 position 위치에서 잘립니다.
n 이 0 이하인 경우 아무 변경도 이루어지지 않습니다.
QString s = "Montreal";
s.remove(1, 4);
// s == "Meal"요소 제거 시 문자열의 용량은 유지되며 할당된 메모리 양은 줄어들지 않습니다. 여분의 용량을 줄이고 가능한 한 많은 메모리를 해제하려면, 문자열 크기를 마지막으로 변경한 후 squeeze()를 호출하십시오.
insert() 및 replace()도 참조하십시오 .
QString &QString::remove(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive)
str 에 의해 해석된 주어진 Latin-1 문자열이 이 문자열에서 나타나는 모든 부분을 제거하고, 이 문자열에 대한 참조를 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
이는 replace(str, "", cs) 과 동일합니다.
요소 제거 시 문자열의 용량은 유지되며 할당된 메모리 양은 줄어들지 않습니다. 여분의 용량을 줄이고 가능한 한 많은 메모리를 확보하려면, 문자열 크기를 마지막으로 변경한 후 squeeze()를 호출하십시오.
이 함수는 오버로드된 함수입니다.
replace()도 참조하십시오 .
[since 6.5] QString &QString::removeAt(qsizetype pos)
pos 의 인덱스에 있는 문자를 제거합니다. pos 가 범위를 벗어난 경우(즉, pos >= size()인 경우), 이 함수는 아무 작업도 수행하지 않습니다.
이 함수는 Qt 6.5에서 도입되었습니다.
remove()도 참조하십시오 .
[since 6.5] QString &QString::removeFirst()
이 문자열의 첫 번째 문자를 제거합니다. 문자열이 비어 있는 경우, 이 함수는 아무 작업도 수행하지 않습니다.
이 함수는 Qt 6.5에서 도입되었습니다.
remove()함수도 참조하십시오 .
[since 6.1] template <typename Predicate> QString &QString::removeIf(Predicate pred)
pred 조건식이 참을 반환하는 모든 요소를 문자열에서 제거합니다. 문자열에 대한 참조를 반환합니다.
이 함수는 Qt 6.1에서 도입되었습니다.
remove()도 참조하십시오 .
[since 6.5] QString &QString::removeLast()
이 문자열의 마지막 문자를 제거합니다. 문자열이 비어 있으면 이 함수는 아무 작업도 수행하지 않습니다.
이 함수는 Qt 6.5에서 도입되었습니다.
remove()도 참조하십시오 .
QString::reverse_iterator QString::rend()
문자열의 마지막 문자 바로 다음 위치를 가리키는, 역순으로 작동하는 STL 스타일의 역이테레이터를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 QString 이 수정될 경우 무효화됩니다.
참조: ` end()`, ` crend()`, ` rbegin()`.
QString::const_reverse_iterator QString::rend() const
이것은 오버로드된 함수입니다.
QString QString::repeated(qsizetype times) const
이 문자열의 복사본을 지정된 횟수만큼 반복하여 반환합니다. times.
times 가 1보다 작으면 빈 문자열이 반환됩니다.
예:
QString str("ab");
str.repeated(4); // returns "abababab"QString &QString::replace(qsizetype position, qsizetype n, const QString &after)
인덱스 position 부터 시작하는 n 문자를 문자열 after 로 대체하고, 이 문자열에 대한 참조를 반환합니다.
참고: 지정된 position 인덱스가 문자열 내에 있지만, position + n 가 문자열의 범위를 벗어나는경우 , n 는 문자열의 끝에서 멈추도록 조정됩니다.
예:
QString &QString::replace(const QRegularExpression &re, const QString &after)
문자열 내에서 정규 표현식 re 이 나타나는 모든 부분을 after 로 대체합니다. 문자열에 대한 참조를 반환합니다. 예를 들어:
QString s = "Banana";
s.replace(QRegularExpression("a[mn]"), "ox");
// s == "Boxoxa"캡처 그룹이 포함된 정규식의 경우, \1, \2, ..., 와 같은 캡처 그룹이 포함된 정규 표현식의 경우, after 내의 해당 그룹들이 해당 캡처 그룹에 의해 캡처된 문자열로 대체됩니다.
QString t = "A <i>bon mot</i>.";
t.replace(QRegularExpression("<i>([^<]*)</i>"), "\\emph{\\1}");
// t == "A \\emph{bon mot}."이 함수는 ` QString::replace()`을 오버로드합니다.
indexOf(), lastIndexOf(), remove(), QRegularExpression 및 QRegularExpressionMatch도 참조하십시오 .
QString &QString::replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
before 문자가 나타나는 모든 곳을 after 문자로 대체하고, 이 문자열에 대한 참조를 반환합니다.
cs 가 Qt::CaseSensitive 인 경우(기본값), 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
이 함수는 QString::replace()을 오버로드합니다.
QString &QString::replace(QChar c, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
c 문자가 나타나는 모든 곳을 after 문자열로 대체하고, 이 문자열에 대한 참조를 반환합니다.
cs 가 Qt::CaseSensitive 인 경우(기본값), 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
참고: 문자열을 치환한 후에는텍스트를 다시 스캔하지 않습니다.
이 함수는 QString::replace()을 오버로드합니다.
QString &QString::replace(QChar ch, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
문자열에서 ch 가 나타나는 모든 부분을 after 로 바꾸고, 이 문자열에 대한 참조를 반환합니다.
cs 가 Qt::CaseSensitive 인 경우(기본값), 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
이 함수는 QString::replace()을 오버로드합니다.
QString &QString::replace(QLatin1StringView before, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
이 문자열에서 before 로 해석된 Latin-1 문자열이 나타나는 모든 부분을 after 로 해석된 Latin-1 문자열로 대체하고, 이 문자열에 대한 참조를 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
참고: 문자열을 대체한 후에는해당 텍스트를 다시 스캔하지 않습니다.
참고: 빈 before 인자를사용하면 , after 인자가 문자열의 각 문자 앞뒤에 삽입됩니다.
이 함수는 QString::replace()을 오버로드합니다.
QString &QString::replace(QLatin1StringView before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
before 로 해석된 이 문자열 내의 모든 Latin-1 문자열을 after 로 대체하고, 이 문자열에 대한 참조를 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
참고: 문자열을 대체한 후에는해당 텍스트를 다시 스캔하지 않습니다.
참고: 빈 before 인자를사용하면 , after 인자가 문자열의 각 문자 앞뒤에 삽입됩니다.
이 함수는 QString::replace()을 오버로드합니다.
QString &QString::replace(const QString &before, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
문자열 “ before ”이 나타나는 모든 부분을 “ after ”으로 바꾸고, 이 문자열에 대한 참조를 반환합니다.
cs 가 Qt::CaseSensitive 인 경우(기본값), 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
참고: 문자열을 치환한 후에는해당 텍스트를 다시 스캔하지 않습니다.
참고: before 인수를비워두면 , after 인수가 문자열의 각 문자 앞뒤에 삽입됩니다.
이 함수는 QString::replace()를 오버로드합니다.
QString &QString::replace(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
문자열 “ before ”이 나타나는 모든 부분을 “ after ”으로 바꾸고, 이 문자열에 대한 참조를 반환합니다.
cs 가 Qt::CaseSensitive 인 경우(기본값), 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
예시:
QString str = "colour behaviour flavour neighbour";
str.replace(QString("ou"), QString("o"));
// str == "color behavior flavor neighbor"참고: 대체텍스트는 삽입된 후 다시 스캔되지 않습니다.
예:
QString equis = "xxxxxx";
equis.replace("xx", "x");
// equis == "xxx"참고: before 인수를 빈 값으로지정하면 , after 인수가 문자열의 각 문자 앞뒤에 삽입됩니다.
이 함수는 QString::replace()을 오버로드합니다.
QString &QString::replace(qsizetype position, qsizetype n, QChar after)
인덱스 position 부터 시작하는 n 의 문자들을 after 문자로 대체하고, 이 문자열에 대한 참조를 반환합니다.
이 함수는 ` QString::replace()`을 오버로드합니다.
QString &QString::replace(qsizetype position, qsizetype n, const QChar *after, qsizetype alen)
인덱스 position 부터 시작하는 n 문자를 QChar 배열 after 의 첫 번째 alen 문자로 대체하고, 이 문자열에 대한 참조를 반환합니다.
n 는 음수일 수 없습니다.
이 함수는 QString::replace()을 오버로드합니다.
QString &QString::replace(const QChar *before, qsizetype blen, const QChar *after, qsizetype alen, Qt::CaseSensitivity cs = Qt::CaseSensitive)
이 문자열에서 before 의 처음 blen 자씩을 after 의 처음 alen 자씩으로 모두 대체하고, 이 문자열에 대한 참조를 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우 대소문자를 구분하여 검색하며, 그렇지 않은 경우 대소문자를 구분하지 않고 검색합니다.
참고: before 가 빈 문자열을 가리키는경우 (즉, blen == 0인 경우), after 가 가리키는 문자열이 이 문자열의 각 문자 앞뒤에 삽입됩니다.
이 함수는 QString::replace()을 오버로드합니다.
void QString::reserve(qsizetype size)
문자열에 최소한 size 개의 문자를 수용할 수 있는 공간이 있는지 확인합니다.
문자열의 크기를 미리 알고 있다면, 이 함수를 호출하여 문자열을 생성하는 동안 반복적인 재할당을 방지할 수 있습니다. 이는 문자열을 점진적으로 생성할 때 성능을 향상시킬 수 있습니다. 문자열에 값을 추가하는 긴 연산 시퀀스는 여러 번의 재할당을 유발할 수 있으며, 마지막 재할당 후에는 필요한 양보다 훨씬 많은 공간이 남을 수 있습니다. 이는 처음에 적절한 크기로 한 번만 할당하는 것보다 비효율적입니다.
필요한 공간이 얼마인지 확실하지 않은 경우, 일반적으로 상한값으로 ` size`를 사용하거나, 엄격한 상한값이 이보다 훨씬 클 경우 가장 가능성이 높은 크기에 대한 높은 추정치를 사용하는 것이 좋습니다. size 가 과소 추정된 경우, 예약된 크기를 초과하면 필요에 따라 문자열이 확장되는데, 이로 인해 가장 낙관적인 추정치보다 더 큰 할당이 발생할 수 있으며, 이를 유발하는 작업의 속도가 느려질 수 있습니다.
경고: reserve ()는 메모리를 예약하지만 문자열의 크기를 변경하지는 않습니다. 문자열 끝을 넘어선 데이터에 접근하는 것은 정의되지 않은 동작입니다. 현재 문자열 끝을 넘어선 메모리에 접근해야 하는 경우, resize()를 사용하십시오.
이 함수는 긴 문자열을 구축해야 하며 반복적인 재할당을 피하고자 하는 코드에 유용합니다. 이 예제에서는 특정 조건이 true 될 때까지 문자열에 내용을 추가하고자 하며, 해당 크기가 reserve() 호출을 수행할 만큼 충분히 크다고 확신하는 경우입니다:
QString result;
qsizetype maxSize;
bool condition;
QChar nextChar;
result.reserve(maxSize);
while (condition)
result.append(nextChar);
result.squeeze();squeeze(), capacity(), resize()도 참조하십시오 .
void QString::resize(qsizetype size)
문자열의 길이를 size 자로 설정합니다.
size 가 현재 크기보다 크면, 문자열은 size 길이가 되도록 확장되며, 추가된 문자는 문자열 끝에 추가됩니다. 새로 추가된 문자는 초기화되지 않습니다.
size 가 현재 크기보다 작으면, 위치 size 을 초과하는 문자들은 문자열에서 제외됩니다.
참고: resize()는 필요한 경우 용량을늘리지만 , 용량을 줄이지는 않습니다. 초과 용량을 제거하려면 squeeze()를 사용하십시오.
예제:
QString s = "Hello world";
s.resize(5);
// s == "Hello"
s.resize(8);
// s == "Hello???" (where ? stands for any character)문자열 끝에 동일한 문자를 특정 개수만큼 추가하려면 resize(qsizetype, QChar) 오버로드를 사용하십시오.
문자열을 특정 너비까지 확장하고 새로운 위치들을 특정 문자로 채우려면 leftJustified() 함수를 사용하십시오:
size 가 음수인 경우, 0을 전달하는 것과 동일합니다.
QString r = "Hello";
r = r.leftJustified(10, ' ');
// r == "Hello "truncate(), reserve(), squeeze()도 참조하십시오 .
void QString::resize(qsizetype newSize, QChar fillChar)
resize(qsizetype)과는 달리, 이 오버로드는 새로운 문자들을 fillChar 로 초기화합니다:
QString t = "Hello";
t.resize(t.size() + 10, 'X');
// t == "HelloXXXXXXXXXX"이것은 오버로드된 함수입니다.
[since 6.8] void QString::resizeForOverwrite(qsizetype size)
문자열의 길이를 size 자로 설정합니다. 문자열의 길이가 늘어날 경우, 새로 추가된 문자는 초기화되지 않습니다.
이 동작은 ` resize(size)`과 동일합니다.
이 함수는 Qt 6.8에서 도입되었습니다.
resize()도 참조하십시오 .
문자열의 가장 오른쪽 n 개의 문자를 포함하는 부분 문자열을 반환합니다.
n 가 범위를 벗어날 수 없다는 것을 알고 있다면, 새로운 코드에서는 last()을 대신 사용하십시오. 이 함수가 더 빠르기 때문입니다.
n 가 size()보다 크거나 같거나, 0보다 작을 경우 전체 문자열이 반환됩니다.
endsWith(), last(), first(), sliced(), chopped(), chop(), truncate() 및 slice()도 참조하십시오 .
QString QString::rightJustified(qsizetype width, QChar fill = u' ', bool truncate = false) const
size() width 의 문자열을 반환하며, 이 문자열은 fill 문자를 앞부분에 붙인 뒤 해당 문자열이 이어집니다. 예:
truncate 가 false 이고, 문자열의 size() 값이 width 보다 크면, 반환되는 문자열은 해당 문자열의 복사본입니다.
truncate 가 true이고 문자열의 size() 값이 width 보다 크다면, 결과 문자열은 width 위치에서 잘립니다.
QString str = "Pineapple";
str = str.rightJustified(5, '.', true); // str == "Pinea"leftJustified()도 참조하십시오 .
QString QString::section(QChar sep, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const
이 함수는 문자열의 일부를 반환합니다.
이 문자열은 ' sep' 문자로 구분된 필드들의 시퀀스로 처리됩니다. 반환되는 문자열은 위치 start 부터 위치 end 까지(이 두 위치 포함)의 필드로 구성됩니다. end 가 지정되지 않은 경우, 위치 start 부터 문자열 끝까지의 모든 필드가 포함됩니다. 필드 번호는 왼쪽에서 세면 0, 1, 2… 순서대로, 오른쪽에서 왼쪽으로 세면 -1, -2… 순서대로 매겨집니다.
flags 인수를 사용하여 함수의 동작에 영향을 줄 수 있습니다. 예를 들어, 대소문자를 구분할지 여부, 빈 필드를 건너뛸지 여부, 문장의 시작과 끝에 있는 구분 기호를 어떻게 처리할지 등을 설정할 수 있습니다. 자세한 내용은 SectionFlags 를 참조하십시오.
QString str;
QString csv = "forename,middlename,surname,phone";
QString path = "/usr/local/bin/myapp"; // First field is empty
QString::SectionFlag flag = QString::SectionSkipEmpty;
str = csv.section(',', 2, 2); // str == "surname"
str = path.section('/', 3, 4); // str == "bin/myapp"
str = path.section('/', 3, 3, flag); // str == "myapp"start 또는 end 가 음수인 경우, 문자열의 오른쪽 끝에서부터 필드를 세며, 가장 오른쪽 필드는 -1, 그 다음 오른쪽 필드는 -2가 되는 식으로 계산됩니다.
str = csv.section(',', -3, -2); // str == "middlename,surname"
str = path.section('/', -1); // str == "myapp"split()도 참조하십시오 .
QString QString::section(const QRegularExpression &re, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const
이 문자열은 정규 표현식 re 로 구분된 필드들의 시퀀스로 처리됩니다.
QString line = "forename\tmiddlename surname \t \t phone";
QRegularExpression sep("\\s+");
str = line.section(sep, 2, 2); // str == "surname"
str = line.section(sep, -3, -2); // str == "middlename surname"경고: 이 QRegularExpression 버전을사용하는 것은 오버로드된 문자열 및 문자 버전보다 훨씬 더 많은 연산 비용을 소모합니다.
이 함수는 QString::section()을 오버로드합니다.
split() 및 simplified()도 참조하십시오 .
QString QString::section(const QString &sep, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const
QString str;
QString data = "forename**middlename**surname**phone";
str = data.section("**", 2, 2); // str == "surname"
str = data.section("**", -3, -2); // str == "middlename**surname"이 함수는 QString::section()을 오버로드합니다.
split()도 참조하십시오 .
QString &QString::setNum(int n, int base = 10)
지정된 ` base`에서 ` n `의 출력값을 문자열로 설정하고, 해당 문자열에 대한 참조를 반환합니다.
기본 기수는 10이며, 2에서 36 사이의 값이어야 합니다.
QString str;
str.setNum(1234); // str == "1234"서식 지정은 항상 QLocale::C, 즉 English/UnitedStates를 사용합니다. 숫자의 현지화된 문자열 표현을 얻으려면 적절한 로케일을 사용하여 QLocale::toString()를 사용하십시오.
number()도 참조하십시오 .
QString &QString::setNum(long n, int base = 10)
이것은 오버로드된 함수입니다.
QString &QString::setNum(qlonglong n, int base = 10)
이것은 오버로드된 함수입니다.
QString &QString::setNum(qulonglong n, int base = 10)
이것은 오버로드된 함수입니다.
QString &QString::setNum(short n, int base = 10)
이것은 오버로드된 함수입니다.
QString &QString::setNum(uint n, int base = 10)
이것은 오버로드된 함수입니다.
QString &QString::setNum(ulong n, int base = 10)
이것은 오버로드된 함수입니다.
QString &QString::setNum(ushort n, int base = 10)
이것은 오버로드된 함수입니다.
QString &QString::setNum(double n, char format = 'g', int precision = 6)
이 함수는 ` n`의 출력 값을, 지정된 ` format ` 및 ` precision`에 따라 서식 처리하여 문자열로 설정하고, 해당 문자열에 대한 참조를 반환합니다.
이 함수는 오버로드된 함수입니다.
number(), QLocale::FloatingPointPrecisionOption 및 Number formats도 참조하십시오 .
QString &QString::setNum(float n, char format = 'g', int precision = 6)
이 메서드는 주어진 format 및 precision 에 따라 서식이 지정된 n 의 출력 값을 문자열로 설정하고, 해당 문자열에 대한 참조를 반환합니다.
서식 지정은 항상 QLocale::C, 즉 English/UnitedStates를 사용합니다. 숫자의 지역화된 문자열 표현을 얻으려면 적절한 로케일을 사용하여 QLocale::toString()를 사용하십시오.
이 함수는 오버로드된 함수입니다.
number()도 참조하십시오 .
QString &QString::setRawData(const QChar *unicode, qsizetype size)
QString 를 재설정하여 배열 unicode 에 포함된 첫 번째 size 유니코드 문자를 사용하도록 합니다. unicode 의 데이터는 복사 되지 않습니다. 호출자는 QString (또는 변경되지 않은 복사본)이 존재하는 한 unicode 가 삭제되거나 수정되지 않을 것임을 보장해야 합니다.
이 함수는 fromRawData() 대신 사용하여 기존 QString 객체를 재사용함으로써 메모리 재할당을 줄일 수 있습니다.
fromRawData(), nullTerminate(), nullTerminated()도 참조하십시오 .
QString &QString::setUnicode(const QChar *unicode, qsizetype size)
문자열의 길이를 size 자로 조정하고, unicode 를 해당 문자열에 복사합니다.
unicode 가 nullptr 인 경우, 아무것도 복사되지 않지만 문자열은 여전히 size 로 크기가 조정됩니다.
unicode() 및 setUtf16()도 참조하십시오 .
[since 6.9] QString &QString::setUnicode(const char16_t *unicode, qsizetype size)
이 함수는 오버로드된 함수입니다.
이 함수는 Qt 6.9에서 도입되었습니다.
unicode() 및 setUtf16()도 참조하십시오 .
[since 6.9] QString &QString::setUtf16(const char16_t *unicode, qsizetype size)
문자열의 길이를 size 자로 조정하고, unicode 을 해당 문자열에 복사합니다.
unicode 가 nullptr 인 경우, 아무것도 복사되지 않지만 문자열의 길이는 여전히 size 로 조정됩니다.
fromUtf16()와 달리, 이 함수는 BOM(바이트 순서 표시) 및 잠재적으로 다를 수 있는 바이트 순서를 고려하지 않는다는 점에 유의하십시오.
이 함수는 Qt 6.9에서 도입되었습니다.
utf16() 및 setUnicode()도 참조하십시오 .
void QString::shrink_to_fit()
이 함수는 STL 호환성을 위해 제공됩니다. 이 함수는 squeeze()과 동일합니다.
squeeze()도 참조하십시오 .
QString QString::simplified() const
문자열의 앞뒤에 있는 공백을 제거하고, 내부 공백 시퀀스를 모두 단일 공백으로 대체한 문자열을 반환합니다.
공백이란 ` QChar::isSpace()` 함수가 ` true`를 반환하는 모든 문자를 의미합니다. 여기에는 ASCII 문자 '\t', '\n', '\v', '\f', '\r' 및 ' '가 포함됩니다.
예시:
QString str = " lots\t of\nwhitespace\r\n ";
str = str.simplified();
// str == "lots of whitespace";trimmed()도 참조하십시오 .
[constexpr noexcept] qsizetype QString::size() const
이 문자열에 포함된 문자 수를 반환합니다.
문자열의 마지막 문자는 size() - 1번째 위치에 있습니다.
예시:
QString str = "World";
qsizetype n = str.size(); // n == 5
str.data()[0]; // returns 'W'
str.data()[4]; // returns 'd'isEmpty() 및 resize()도 참조하십시오 .
[since 6.8] QString &QString::slice(qsizetype pos, qsizetype n)
이 문자열을 수정하여 위치 pos 에서 시작하여, 인덱스 위치 pos + n에 있는 문자를 포함하지 않는 위치까지 수정하고, 이 문자열에 대한 참조를 반환합니다.
참고: pos < 0, n < 0, 또는 pos + n > size()인 경우동작이 정의되지 않습니다.
QString x = u"Nine pineapples"_s;
x.slice(5); // x == "pineapples"
x.slice(4, 3); // x == "app"이 함수는 Qt 6.8에서 도입되었습니다.
sliced(), first(), last(), chopped(), chop(), truncate()도 참조하십시오 .
[since 6.8] QString &QString::slice(qsizetype pos)
이 문자열을 pos 위치부터 끝까지 수정하고, 이 문자열에 대한 참조를 반환합니다.
참고: pos < 0이거나 pos > size()인 경우동작이 정의되지 않습니다.
이 함수는 오버로드된 함수입니다.
이 함수는 Qt 6.8에서 도입되었습니다.
sliced(), first(), last(), chopped(), chop() 및 truncate()도 참조하십시오 .
[since 6.0] QString QString::sliced(qsizetype pos, qsizetype n) &&
[since 6.0] QString QString::sliced(qsizetype pos, qsizetype n) const &
이 문자열의 n 개 문자를 포함하는 문자열을 반환하며, 위치 pos 부터 시작하여 인덱스 위치 pos + n까지(해당 요소는 포함하지 않음)의 xml-ph-0000@deepl.internal개 문자를 포함하는 문자열을 반환합니다.
참고: pos < 0, n < 0, 또는 pos + n > size()인 경우동작이 정의되지 않습니다.
QString x = "Nine pineapples";
QString y = x.sliced(5, 4); // y == "pine"
QString z = x.sliced(5); // z == "pineapples"이 함수들은 Qt 6.0에서 도입되었습니다.
first(), last(), chopped(), chop(), truncate() 및 slice()도 참조하십시오 .
[since 6.0] QString QString::sliced(qsizetype pos) &&
[since 6.0] QString QString::sliced(qsizetype pos) const &
이 문자열의 pos 위치부터 끝까지의 부분을 포함하는 문자열을 반환합니다.
참고: pos < 0이거나 pos > size()인 경우동작이 정의되지 않습니다.
이 함수들은 Qt 6.0에서 도입되었습니다.
first(), last(), chopped(), chop(), truncate() 및 slice()도 참조하십시오 .
QStringList QString::split(const QString &sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
sep 가 나타나는 모든 위치에서 문자열을 부분 문자열로 분할하고, 해당 문자열들의 목록을 반환합니다. 만약 sep 가 문자열 어디에서도 일치하지 않는 경우, split()은 이 문자열을 포함하는 단일 요소 목록을 반환합니다.
cs sep 의 대소문자 구분 여부를 지정합니다.
behavior 가 Qt::SkipEmptyParts 인 경우, 결과에는 빈 항목이 나타나지 않습니다. 기본적으로 빈 항목은 유지됩니다.
예시:
QString str = QStringLiteral("a,,b,c");
QStringList list1 = str.split(u',');
// list1: [ "a", "", "b", "c" ]
QStringList list2 = str.split(u',', Qt::SkipEmptyParts);
// list2: [ "a", "b", "c" ]sep 가 비어 있으면, split()은 빈 문자열을 반환하고, 그 뒤에 문자열의 각 문자가 차례로 나열되며, 마지막에 또 다른 빈 문자열이 따라옵니다:
이 동작을 이해하려면, 빈 문자열이 모든 위치와 일치한다는 점을 상기하십시오. 따라서 위의 예는 본질적으로 다음과 동일합니다:
QString str = "/a/b/c/";
auto parts = str.split(u'/');
// parts: {"", "a", "b", "c", ""}QStringList::join() 및 section()도 참조하십시오 .
QStringList QString::split(const QRegularExpression &re, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const
정규 표현식 re 이 일치하는 모든 위치에서 문자열을 부분 문자열로 분할하고, 해당 문자열들의 목록을 반환합니다. 만약 re 이 문자열 어디에서도 일치하지 않으면, split()은 이 문자열을 포함하는 단일 요소 목록을 반환합니다.
다음은 하나 이상의 공백 문자를 구분자로 사용하여 문장 속 단어들을 추출하는 예시입니다:
QString str;
QStringList list;
str = "Some text\n\twith strange whitespace.";
list = str.split(QRegularExpression("\\s+"));
// list: [ "Some", "text", "with", "strange", "whitespace." ]다음은 이와 유사한 예시이지만, 이번에는 단어가 아닌 임의의 문자 시퀀스를 구분자로 사용합니다:
str = "This time, a normal English sentence.";
list = str.split(QRegularExpression("\\W+"), Qt::SkipEmptyParts);
// list: [ "This", "time", "a", "normal", "English", "sentence" ]다음은 길이가 0인 어설션( \b (단어 경계)를 사용하여 문자열을 단어가 아닌 토큰과 단어 토큰이 번갈아 나타나는 시퀀스로 분할하는 세 번째 예제입니다:
str = "Now: this sentence fragment.";
list = str.split(QRegularExpression("\\b"));
// list: [ "", "Now", ": ", "this", " ", "sentence", " ", "fragment", "." ]이 함수는 오버로드된 함수입니다.
QStringList::join() 및 section()도 참조하십시오 .
QStringList QString::split(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이것은 오버로드된 함수입니다.
void QString::squeeze()
문자 데이터를 저장하는 데 필요하지 않은 메모리를 모두 해제합니다.
이 함수의 유일한 목적은 QString 의 메모리 사용량을 미세 조정할 수 있는 수단을 제공하는 것입니다. 일반적으로 이 함수를 호출해야 할 일은 거의 없습니다.
reserve() 및 capacity()도 참조하십시오 .
bool QString::startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
문자열이 s 로 시작하면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우, 검색은 대소문자를 구분하며, 그렇지 않은 경우 대소문자를 구분하지 않습니다.
QString str = "Bananas";
str.startsWith("Ban"); // returns true
str.startsWith("Car"); // returns falseendsWith()도 참조하십시오 .
bool QString::startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
문자열이 c 로 시작하면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
이 함수는 ` QString::startsWith()`을 오버로드합니다.
bool QString::startsWith(QLatin1StringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 함수는 ` QString::startsWith()`를 오버로드합니다.
[noexcept] bool QString::startsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
문자열이 문자열 뷰 ` str`로 시작하는 경우 ` true `을 반환하고, 그렇지 않은 경우 ` false`을 반환합니다.
cs 가 Qt::CaseSensitive (기본값)인 경우, 검색은 대소문자를 구분하며, 그렇지 않은 경우 대소문자를 구분하지 않습니다.
이 함수는 오버로드된 함수입니다.
endsWith()도 참조하십시오 .
[noexcept] void QString::swap(QString &other)
이 문자열을 other 와 바꿉니다. 이 작업은 매우 빠르며 절대 실패하지 않습니다.
CFStringRef QString::toCFString() const
QString 에서 CFString을 생성합니다.
호출자가 CFString을 소유하며, 이를 해제할 책임이 있습니다.
참고: 이 함수는 macOS 및 iOS에서만 사용할 수 있습니다.
QString QString::toCaseFolded() const
문자의 대소문자를 통일한 형태를 반환합니다. 대부분의 유니코드 문자에 대해서는 이 함수가 ` toLower()`와 동일한 결과를 반환합니다.
double QString::toDouble(bool *ok = nullptr) const
double 값으로 변환된 문자열을 반환합니다.
변환 시 오버플로우가 발생하면 무한대(infinity)를 반환하고, 다른 이유(예: 언더플로우)로 변환에 실패하면 0.0을 반환합니다.
ok 가 nullptr 가 아닌 경우, *ok 를 false 로 설정하여 실패를 알리고, *ok 를 true 로 설정하여 성공을 알립니다.
QString str = "1234.56";
double val = str.toDouble(); // val == 1234.56경고: ` QString `의 내용에는 더하기/빼기 기호, 과학적 표기법에 사용되는 문자 'e', 소수점을 포함한 유효한 숫자 문자만 포함될 수 있습니다. 단위나 추가 문자를 포함하면 변환 오류가 발생합니다.
bool ok;
double d;
d = QString( "1234.56e-02" ).toDouble(&ok); // ok == true, d == 12.3456
d = QString( "1234.56e-02 Volt" ).toDouble(&ok); // ok == false, d == 0문자열 변환은 항상 'C' 로케일에서 수행됩니다. 로케일에 따라 달라지는 변환을 원할 경우 QLocale::toDouble()를 사용하십시오.
d = QString( "1234,56" ).toDouble(&ok); // ok == false
d = QString( "1234.56" ).toDouble(&ok); // ok == true, d == 1234.56역사적인 이유로, 이 함수는 천 단위 구분자를 처리하지 않습니다. 이러한 숫자를 변환해야 하는 경우 QLocale::toDouble()를 사용하십시오.
d = QString( "1,234,567.89" ).toDouble(&ok); // ok == false
d = QString( "1234567.89" ).toDouble(&ok); // ok == true이 함수는 앞뒤의 공백을 무시합니다.
number(), QLocale::setDefault(), QLocale::toDouble() 및 trimmed()도 참조하십시오 .
[since 6.6] emscripten::val QString::toEcmaString() const
이 객체를 ECMAScript 문자열로 변환합니다.
이 함수는 Qt 6.6에서 도입되었습니다.
fromEcmaString()도 참조하십시오 .
float QString::toFloat(bool *ok = nullptr) const
float 값으로 변환된 문자열을 반환합니다.
변환 시 오버플로우가 발생하면 무한대를, 그 외의 이유(예: 언더플로우)로 변환에 실패하면 0.0을 반환합니다.
ok 가 nullptr 가 아닌 경우, *ok 를 false 로 설정하여 실패를 보고하고, *ok 를 true 로 설정하여 성공을 보고합니다.
경고: ` QString `의 내용에는 더하기/빼기 기호, 과학적 표기법에 사용되는 문자 'e', 소수점을 포함한 유효한 숫자 문자만 포함될 수 있습니다. 단위나 추가 문자를 포함하면 변환 오류가 발생합니다.
문자열 변환은 항상 'C' 로케일에서 수행됩니다. 로케일에 따라 달라지는 변환을 원할 경우 QLocale::toFloat()를 사용하십시오.
역사적인 이유로 인해, 이 함수는 천 단위 구분 기호를 처리하지 않습니다. 이러한 숫자를 변환해야 하는 경우, QLocale::toFloat()을 사용하십시오.
예시:
QString str1 = "1234.56";
str1.toFloat(); // returns 1234.56
bool ok;
QString str2 = "R2D2";
str2.toFloat(&ok); // returns 0.0, sets ok to false
QString str3 = "1234.56 Volt";
str3.toFloat(&ok); // returns 0.0, sets ok to false이 함수는 앞뒤의 공백을 무시합니다.
number(), toDouble(), toInt(), QLocale::toFloat(), trimmed()도 참조하십시오 .
QString QString::toHtmlEscaped() const
일반 텍스트 문자열을 HTML 문자열로 변환하며, 이 과정에서 HTML 메타문자 <, >, &, " 을 HTML 엔티티로 대체합니다.
예시:
QString plain = "#include <QtCore>";
QString html = plain.toHtmlEscaped();
// html == "#include <QtCore>"int QString::toInt(bool *ok = nullptr, int base = 10) const
기본값이 10이며 2에서 36 사이의 값 또는 0이어야 하는 기수 base 를 사용하여 문자열을 int 로 변환한 결과를 반환합니다. 변환에 실패하면 0을 반환합니다.
ok 가 nullptr 와 다를 경우, *ok 를 false 로 설정하여 실패를 알리고, *ok 를 true 로 설정하여 성공을 알립니다.
base 가 0인 경우, C 언어의 규칙이 적용됩니다. 즉, 문자열이 "0x"로 시작하면 16진수가 사용되고, 그렇지 않은 경우 문자열이 "0b"로 시작하면 2진수가 사용되며, 그 외의 경우 문자열이 "0"으로 시작하면 8진수가 사용됩니다. 그 외의 경우에는 10진수가 사용됩니다.
문자열 변환은 항상 'C' 로케일에서 수행됩니다. 로케일에 따라 달라지는 변환을 원할 경우 QLocale::toInt()를 사용하십시오.
예시:
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이 함수는 앞뒤의 공백을 무시합니다.
참고: “0b” 접두사에 대한지원은 Qt 6.4에서 추가되었습니다.
number(), toUInt(), toDouble(), QLocale::toInt()도 참조하십시오 .
QByteArray QString::toLatin1() const
문자열을 라틴-1(Latin-1) 형식으로 변환한 결과를 ` QByteArray` 객체로 반환합니다.
문자열에 Latin-1이 아닌 문자가 포함된 경우, 반환되는 바이트 배열의 내용은 정의되지 않습니다. 이러한 문자는 생략되거나 물음표로 대체될 수 있습니다.
fromLatin1(), toUtf8(), toLocal8Bit(), QStringEncoder도 참조하십시오 .
QByteArray QString::toLocal8Bit() const
문자열을 로컬 8비트 형식으로 변환한 값을 ` QByteArray`로 반환합니다.
유닉스 시스템에서는 이 함수가 toUtf8()과 동일합니다. Apple 시스템에서는 이 함수가 NSString.defaultCStringEncoding이나 CFStringGetSystemEncoding() 을 고려하지 않는다는 점에 유의하십시오. 이러한 함수들은 일반적으로 구식 "Western (Mac OS Roman)" 인코딩을 반환하는데, 이는 최신 Apple 운영 체제에서는 사용해서는 안 되는 인코딩입니다. Windows에서는 시스템의 현재 코드 페이지가 사용됩니다.
이 문자열에 로컬 8비트 인코딩으로 인코딩할 수 없는 문자가 포함되어 있는 경우, 반환되는 바이트 배열은 정의되지 않습니다. 해당 문자는 생략되거나 다른 문자로 대체될 수 있습니다.
fromLocal8Bit(), toLatin1(), toUtf8(), QStringEncoder도 참조하십시오 .
long QString::toLong(bool *ok = nullptr, int base = 10) const
기본값이 10이며 2에서 36 사이의 값 또는 0이어야 하는 기수 base 를 사용하여 문자열을 long 로 변환한 결과를 반환합니다. 변환에 실패하면 0을 반환합니다.
ok 가 nullptr 와 다를 경우, *ok 를 false 로 설정하여 실패를 알리고, *ok 를 true 로 설정하여 성공을 알립니다.
base 가 0인 경우, C 언어의 규칙이 적용됩니다. 즉, 문자열이 "0x"로 시작하면 16진수가 사용되고, 그렇지 않은 경우 문자열이 "0b"로 시작하면 2진수가 사용되며, 그 외의 경우 문자열이 "0"으로 시작하면 8진수가 사용됩니다. 그 외의 경우에는 10진수가 사용됩니다.
문자열 변환은 항상 'C' 로케일에서 수행됩니다. 로케일에 따라 변환을 수행하려면 QLocale::toLongLong()을 사용하십시오.
예시:
QString str = "FF";
bool ok;
long hex = str.toLong(&ok, 16); // hex == 255, ok == true
long dec = str.toLong(&ok, 10); // dec == 0, ok == false이 함수는 앞뒤의 공백을 무시합니다.
참고: "0b" 접두사에 대한지원은 Qt 6.4에서 추가되었습니다.
number(), toULong(), toInt(), QLocale::toInt()도 참조하십시오 .
qlonglong QString::toLongLong(bool *ok = nullptr, int base = 10) const
기본값이 10이며 2에서 36 사이의 값 또는 0이어야 하는 기수 base 를 사용하여 long long 로 변환된 문자열을 반환합니다. 변환에 실패하면 0을 반환합니다.
ok 가 nullptr 와 다를 경우, *ok 를 false 로 설정하여 실패를 알리고, *ok 를 true 로 설정하여 성공을 알립니다.
base 가 0인 경우, C 언어의 관례가 사용됩니다. 즉, 문자열이 "0x"로 시작하면 16진수가 사용되고, 그렇지 않은 경우 문자열이 "0b"로 시작하면 2진수가 사용되며, 그 외의 경우 문자열이 "0"으로 시작하면 8진수가 사용됩니다. 그 외의 경우에는 10진법이 사용됩니다.
문자열 변환은 항상 'C' 로케일에서 수행됩니다. 로케일 기반 변환을 사용하려면 QLocale::toLongLong()를 사용하십시오.
예시:
QString str = "FF";
bool ok;
qint64 hex = str.toLongLong(&ok, 16); // hex == 255, ok == true
qint64 dec = str.toLongLong(&ok, 10); // dec == 0, ok == false이 함수는 앞뒤의 공백을 무시합니다.
참고: "0b" 접두사에 대한지원은 Qt 6.4에서 추가되었습니다.
number(), toULongLong(), toInt(), QLocale::toLongLong()도 참조하십시오 .
QString QString::toLower() const
문자열의 소문자 버전을 반환합니다.
QString str = "The Qt PROJECT";
str = str.toLower(); // str == "the qt project"대소문자 변환은 항상 'C' 로케일 기준으로 수행됩니다. 로케일에 따라 대소문자가 변환되는 기능을 사용하려면 QLocale::toLower()을 사용하십시오.
toUpper() 및 QLocale::toLower()도 참조하십시오 .
NSString *QString::toNSString() const
QString 에서 NSString을 생성합니다.
NSString은 자동 해제됩니다.
참고: 이 함수는 macOS 및 iOS에서만 사용할 수 있습니다.
short QString::toShort(bool *ok = nullptr, int base = 10) const
기본값이 10이며 2~36 사이의 값 또는 0이어야 하는 기수( base)를 사용하여 문자열을 10진수( short )로 변환한 결과를 반환합니다. 변환에 실패하면 0을 반환합니다.
ok 가 nullptr 와 다를 경우, *ok 를 false 로 설정하여 실패를 알리고, *ok 를 true 로 설정하여 성공을 알립니다.
base 가 0인 경우, C 언어 규칙이 적용됩니다. 즉, 문자열이 "0x"로 시작하면 16진수가 사용되고, 그렇지 않은 경우 문자열이 "0b"로 시작하면 2진수가 사용되며, 그 외의 경우 문자열이 "0"으로 시작하면 8진수가 사용됩니다. 그 외의 경우에는 10진수가 사용됩니다.
문자열 변환은 항상 'C' 로케일에서 수행됩니다. 로케일에 따라 변환을 수행하려면 QLocale::toShort()을 사용하십시오.
예시:
QString str = "FF";
bool ok;
short hex = str.toShort(&ok, 16); // hex == 255, ok == true
short dec = str.toShort(&ok, 10); // dec == 0, ok == false이 함수는 앞뒤의 공백을 무시합니다.
참고: "0b" 접두사에 대한지원은 Qt 6.4에서 추가되었습니다.
number(), toUShort(), toInt(), QLocale::toShort()도 참조하십시오 .
std::string QString::toStdString() const
이 ` QString`에 포함된 데이터를 가진 `std::string` 객체를 반환합니다. 유니코드 데이터는 ` toUtf8()` 함수를 사용하여 8비트 문자로 변환됩니다.
이 메서드는 주로 std::string 객체를 인수로 받는 함수에 QString 을 전달할 때 유용합니다.
toLatin1(), toUtf8(), toLocal8Bit(), QByteArray::toStdString()도 참조하십시오 .
std::u16string QString::toStdU16String() const
이 QString 에 포함된 데이터를 가진 std::u16string 객체를 반환합니다. 유니코드 데이터는 utf16() 메서드가 반환하는 것과 동일합니다.
utf16(), toStdWString() 및 toStdU32String()도 참조하십시오 .
std::u32string QString::toStdU32String() const
이 QString 에 포함된 데이터를 가진 std::u32string 객체를 반환합니다. 이 유니코드 데이터는 toUcs4() 메서드가 반환하는 데이터와 동일합니다.
toUcs4(), toStdWString(), toStdU16String()도 참조하십시오 .
std::wstring QString::toStdWString() const
이 ` QString`에 포함된 데이터를 가진 `std::wstring` 객체를 반환합니다. 이 std::wstring은 wchar_t의 크기가 2바이트인 플랫폼(예: Windows)에서는 UTF-16으로, wchar_t의 크기가 4바이트인 플랫폼(대부분의 Unix 시스템)에서는 UTF-32로 인코딩됩니다.
이 메서드는 주로 std::wstring 객체를 받는 함수에 QString 을 전달할 때 유용합니다.
utf16(), toLatin1(), toUtf8(), toLocal8Bit(), toStdU16String() 및 toStdU32String()도 참조하십시오 .
uint QString::toUInt(bool *ok = nullptr, int base = 10) const
기본값이 10이며 2에서 36 사이의 값이어야 하는 기수( base)를 사용하여 문자열을 10진법( unsigned int )으로 변환한 결과를 반환합니다. 변환에 실패하면 0을 반환합니다.
ok 가 nullptr 와 다를 경우, *ok 를 false 로 설정하여 실패를 알리고, *ok 를 true 로 설정하여 성공을 알립니다.
base 가 0인 경우, C 언어의 규칙이 적용됩니다. 즉, 문자열이 "0x"로 시작하면 16진수가 사용되고, 그렇지 않은 경우 문자열이 "0b"로 시작하면 2진수가 사용되며, 그 외의 경우 문자열이 "0"으로 시작하면 8진수가 사용됩니다. 그 외의 경우에는 10진법이 사용됩니다.
문자열 변환은 항상 'C' 로케일에서 수행됩니다. 로케일에 따라 변환을 수행하려면 QLocale::toUInt()을 사용하십시오.
예시:
QString str = "FF";
bool ok;
uint hex = str.toUInt(&ok, 16); // hex == 255, ok == true
uint dec = str.toUInt(&ok, 10); // dec == 0, ok == false이 함수는 앞뒤의 공백을 무시합니다.
참고: "0b" 접두사에 대한지원은 Qt 6.4에서 추가되었습니다.
number(), toInt() 및 QLocale::toUInt()도 참조하십시오 .
ulong QString::toULong(bool *ok = nullptr, int base = 10) const
기본값이 10이며 2에서 36 사이의 값 또는 0이어야 하는 기수 base 를 사용하여 문자열을 unsigned long 로 변환한 결과를 반환합니다. 변환에 실패하면 0을 반환합니다.
ok 가 nullptr 와 다를 경우, *ok 를 false 로 설정하여 실패를 알리고, *ok 를 true 로 설정하여 성공을 알립니다.
base 가 0인 경우, C 언어의 규칙이 적용됩니다. 즉, 문자열이 "0x"로 시작하면 16진수가 사용되고, 그렇지 않은 경우 문자열이 "0b"로 시작하면 2진수가 사용되며, 그 외의 경우 문자열이 "0"으로 시작하면 8진수가 사용됩니다. 그 외의 경우에는 10진수가 사용됩니다.
문자열 변환은 항상 'C' 로케일에서 수행됩니다. 로케일에 따라 변환을 수행하려면 QLocale::toULongLong()을 사용하십시오.
예시:
QString str = "FF";
bool ok;
ulong hex = str.toULong(&ok, 16); // hex == 255, ok == true
ulong dec = str.toULong(&ok, 10); // dec == 0, ok == false이 함수는 앞뒤의 공백을 무시합니다.
참고: "0b" 접두사에 대한지원은 Qt 6.4에서 추가되었습니다.
number() 및 QLocale::toUInt()도 참조하십시오 .
qulonglong QString::toULongLong(bool *ok = nullptr, int base = 10) const
기본값 base(기본값은 10이며, 2에서 36 사이의 값 또는 0이어야 함)을 사용하여 문자열을 unsigned long long 로 변환한 결과를 반환합니다. 변환에 실패하면 0을 반환합니다.
ok 가 nullptr 와 다를 경우, *ok 를 false 로 설정하여 실패를 알리고, *ok 를 true 로 설정하여 성공을 알립니다.
base 가 0인 경우, C 언어의 규칙이 적용됩니다. 즉, 문자열이 "0x"로 시작하면 16진수가 사용되고, 그렇지 않은 경우 문자열이 "0b"로 시작하면 2진수가 사용되며, 그 외의 경우 문자열이 "0"으로 시작하면 8진수가 사용됩니다. 그 외의 경우에는 10진수가 사용됩니다.
문자열 변환은 항상 'C' 로케일에서 수행됩니다. 로케일에 따라 변환을 수행하려면 QLocale::toULongLong()을 사용하십시오.
예시:
QString str = "FF";
bool ok;
quint64 hex = str.toULongLong(&ok, 16); // hex == 255, ok == true
quint64 dec = str.toULongLong(&ok, 10); // dec == 0, ok == false이 함수는 앞뒤의 공백을 무시합니다.
참고: "0b" 접두사지원은 Qt 6.4에서 추가되었습니다.
number(), toLongLong() 및 QLocale::toULongLong()도 참조하십시오 .
ushort QString::toUShort(bool *ok = nullptr, int base = 10) const
기본값이 10이며 2에서 36 사이의 값 또는 0이어야 하는 기수( base)를 사용하여 10진수( unsigned short )로 변환된 문자열을 반환합니다. 변환에 실패하면 0을 반환합니다.
ok 가 nullptr 와 다를 경우, *ok 를 false 로 설정하여 실패를 알리고, *ok 를 true 로 설정하여 성공을 알립니다.
base 가 0인 경우, C 언어의 규칙이 적용됩니다. 즉, 문자열이 "0x"로 시작하면 16진수가 사용되며, 그렇지 않은 경우 문자열이 "0b"로 시작하면 2진수가, "0"으로 시작하면 8진수가 사용됩니다. 그 외의 경우에는 10진수가 사용됩니다.
문자열 변환은 항상 'C' 로케일에서 수행됩니다. 로케일에 따라 변환을 수행하려면 QLocale::toUShort()를 사용하십시오.
예시:
QString str = "FF";
bool ok;
ushort hex = str.toUShort(&ok, 16); // hex == 255, ok == true
ushort dec = str.toUShort(&ok, 10); // dec == 0, ok == false이 함수는 앞뒤의 공백을 무시합니다.
참고: "0b" 접두사에 대한지원은 Qt 6.4에서 추가되었습니다.
number(), toShort() 및 QLocale::toUShort()도 참조하십시오 .
QList<uint> QString::toUcs4() const
문자열을 UCS-4/UTF-32 형식으로 변환한 값을 QList<uint>로 반환합니다.
UTF-32는 유니코드 인코딩 방식이므로 무손실입니다. 이 문자열의 모든 문자는 UTF-32로 인코딩됩니다. 이 문자열에 포함된 유효하지 않은 코드 단위 시퀀스는 유니코드 대체 문자(QChar::ReplacementCharacter, U+FFFD 에 해당)로 대체됩니다.
반환된 리스트는 0으로 종료되지 않습니다.
fromUtf8(), toUtf8(), toLatin1(), toLocal8Bit(), QStringEncoder, fromUcs4() 및 toWCharArray()도 참조하십시오 .
QString QString::toUpper() const
문자열을 대문자로 변환한 사본을 반환합니다.
QString str = "TeXt";
str = str.toUpper(); // str == "TEXT"대소문자 변환은 항상 'C' 로케일 기준으로 수행됩니다. 로케일에 따라 대소문자를 변환하려면 QLocale::toUpper()를 사용하십시오.
참고: 경우에 따라 문자열의 대문자 형태가 원본보다 길어질 수 있습니다.
참고: 2024년부터 독일어에서는 ß(U+00DF LATIN SMALL LETTER SHARP S)를 ẞ(U+1E9E LATIN CAPITAL LETTER SHARP S)로 대문자화하는 것을 공식적으로 권장합니다. Qt XML의 구현은 여전히 "SS" 사용을 의무화하는 유니코드를 따릅니다. 새로운 독일어 규칙을 구현해야 하는 경우, 이 함수를 호출하기 전에 replace(u'ß', u'ẞ') 를 수동으로 수행해야 합니다.
toLower() 및 QLocale::toLower()도 참조하십시오 .
QByteArray QString::toUtf8() const
문자열의 UTF-8 표현을 ` QByteArray` 형식으로 반환합니다.
UTF-8은 유니코드 인코딩 방식이며, QString 와 같은 유니코드 문자열의 모든 문자를 표현할 수 있습니다.
fromUtf8(), toLatin1(), toLocal8Bit() 및 QStringEncoder도 참조하십시오 .
qsizetype QString::toWCharArray(wchar_t *array) const
이 ` QString ` 객체에 포함된 데이터로 ` array ` 배열을 채웁니다. 이 배열은 `wchar_t`의 크기가 2바이트인 플랫폼(예: Windows)에서는 UTF-16으로, `wchar_t`의 크기가 4바이트인 플랫폼(대부분의 Unix 시스템)에서는 UTF-32로 인코딩됩니다.
array xml-ph-0000@deepl.internal는 호출자가 직접 할당해야 하며, 전체 문자열을 담을 수 있는 충분한 공간을 확보해야 합니다(문자열과 동일한 길이로 배열을 할당하는 것만으로도 항상 충분합니다).
이 함수는 문자열의 실제 길이를 ` array` 단위로 반환합니다.
참고: 이 함수는 배열 끝에 널 문자를 추가하지 않습니다.
utf16(), toUcs4(), toLatin1(), toUtf8(), toLocal8Bit(), toStdWString() 및 QStringView::toWCharArray()도 참조하십시오 .
[noexcept(...), since 6.0] template <typename Needle, typename... Flags> auto QString::tokenize(Needle &&sep, Flags... flags) &&
[noexcept(...), since 6.0] template <typename Needle, typename... Flags> auto QString::tokenize(Needle &&sep, Flags... flags) const &&
[noexcept(...), since 6.0] template <typename Needle, typename... Flags> auto QString::tokenize(Needle &&sep, Flags... flags) const &
sep 가 나타나는 모든 위치에서 문자열을 부분 문자열 뷰로 분할하고, 해당 문자열들의 지연 시퀀스를 반환합니다.
다음과 동일합니다.
return QStringTokenizer{std::forward<Needle>(sep), flags...};와 동일하지만, 컴파일러에서 C++17 클래스 템플릿 인자 추론(CTAD)이 활성화되지 않은 상태에서도 작동한다는 점이 다릅니다.
결과를 형성하기 위해 ` sep `와 ` flags `가 어떻게 상호 작용하는지에 대해서는 ` QStringTokenizer `를 참조하십시오.
참고: 이 함수는 QStringTokenizer 를반환하지만 , 절대로 템플릿 인자의 이름을 명시적으로 지정해서는 안 됩니다. C++17 클래스 템플릿 인자 추론(CTAD)을 사용할 수 있다면, 다음과 같이 작성할 수 있습니다
QStringTokenizer result = sv.tokenize(sep);(템플릿 인자 없이). C++17 CTAD를 사용할 수 없는 경우, 반환 값은 반드시 auto 변수에 저장해야 합니다:
auto result = sv.tokenize(sep);이는 ` QStringTokenizer `의 템플릿 인자가 반환되는 특정 ` tokenize()` 오버로드에 매우 미묘한 의존성을 가지며, 일반적으로 구분자에 사용되는 유형과 일치하지 않기 때문입니다.
이 함수들은 Qt 6.0에서 도입되었습니다.
참고: noexcept(qTokenize(std::declval<QString>(), std::forward<Needle>(needle), flags...)) 가 true 일 때( 1)은 noexcept입니다.
참고: noexcept(qTokenize(std::declval<const QString>(), std::forward<Needle>(needle), flags...)) 가 true 인 경우( 2)는 noexcept입니다.
참고: ( 3)은 noexcept(qTokenize(std::declval<const QString &>(), std::forward<Needle>(needle), flags...)) 가 true 일 때 noexcept입니다.
QStringTokenizer 및 qTokenize()도 참조하십시오 .
QString QString::trimmed() const
문자열의 앞뒤에 있는 공백을 제거한 문자열을 반환합니다.
공백이란 ` QChar::isSpace()`가 ` true`를 반환하는 모든 문자를 의미합니다. 여기에는 ASCII 문자 '\t', '\n', '\v', '\f', '\r' 및 ' '가 포함됩니다.
예시:
QString str = " lots\t of\nwhitespace\r\n ";
str = str.trimmed();
// str == "lots\t of\nwhitespace"simplified()과 달리, trimmed()은 내부 공백은 그대로 둡니다.
simplified()도 참조하십시오 .
void QString::truncate(qsizetype position)
인덱스 position 에 있는 요소를 포함하여, 해당 요소부터 시작하는 문자열을 잘라냅니다.
지정된 인덱스 position 이 문자열의 끝을 넘어가는 경우, 아무 작업도 수행되지 않습니다.
예:
QString str = "Vladivostok";
str.truncate(4);
// str == "Vlad"position 가 음수인 경우, 0을 전달하는 것과 동일합니다.
chop(), resize(), first(), QStringView::truncate()도 참조하십시오 .
const QChar *QString::unicode() const
문자열의 유니코드 표현을 반환합니다. 결과는 문자열이 수정될 때까지 유효합니다.
참고: 반환된문자열은 '\0'로 끝나지 않을 수 있습니다. 배열의 길이를 확인하려면 size()를 사용하십시오.
참조: setUnicode(), utf16(), fromRawData().
[static] QString QString::vasprintf(const char *cformat, va_list ap)
asprintf()와 동등한 메서드이지만, 가변 인자 목록 대신 va_list ap 를 받습니다. cformat 에 대한 설명은 asprintf() 문서를 참조하십시오.
이 메서드는 va_end 매크로를 호출하지 않으므로, 호출자는 ap 에서 va_end를 직접 호출해야 합니다.
asprintf()도 참조하십시오 .
[noexcept, since 6.7] QString::operator std::u16string_view() const
이 QString 객체를 std::u16string_view 객체로 변환합니다.
이 함수는 Qt 6.7에서 도입되었습니다.
QString &QString::operator+=(const QString &other)
이 문자열의 끝에 “ other ”라는 문자열을 추가하고, 이 문자열에 대한 참조를 반환합니다.
예시:
이 작업은 일반적으로 매우 빠릅니다(상수 시간). 이는 ` QString ` 함수가 문자열 데이터의 끝에 추가 공간을 미리 할당해 두기 때문에, 매번 문자열 전체를 재할당하지 않고도 길이를 늘릴 수 있기 때문입니다.
append() 및 prepend()도 참조하십시오 .
QString &QString::operator+=(QChar ch)
문자열의 끝에 ch 문자를 추가합니다.
이 함수는 ` QString::operator+=()`을 오버로드합니다.
QString &QString::operator+=(QLatin1StringView str)
str 가 반환한 Latin-1 문자열을 이 문자열 뒤에 추가합니다.
이 함수는 QString::operator+=()을 오버로드합니다.
[since 6.0] QString &QString::operator+=(QStringView str)
str 문자열 뷰를 이 문자열에 추가합니다.
이 함수는 ` QString::operator+=()`을 오버로드합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
[since 6.5] QString &QString::operator+=(QUtf8StringView str)
UTF-8 문자열 뷰 ` str `를 이 문자열에 추가합니다.
이 함수는 ` QString::operator+=()`을 오버로드합니다.
이 함수는 Qt 6.5에서 도입되었습니다.
QString &QString::operator+=(const QByteArray &ba)
ba 바이트 배열을 이 문자열에 추가합니다. 바이트 배열은 fromUtf8() 함수를 사용하여 유니코드로 변환됩니다. ba 바이트 배열에 NUL 문자('\0')가 포함되어 있는 경우, 이 변환 과정에 해당 문자들도 포함됩니다.
애플리케이션을 컴파일할 때 ` QT_NO_CAST_FROM_ASCII `를 정의하여 이 기능을 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 ` QObject::tr()`를 통해 처리되도록 보장하려는 경우 이 방법이 유용할 수 있습니다.
이 함수는 QString::operator+=()을 오버로드합니다.
QString &QString::operator+=(const char *str)
이 문자열에 “ str ” 문자열을 추가합니다. const char 포인터는 fromUtf8() 함수를 사용하여 유니코드로 변환됩니다.
응용 프로그램을 컴파일할 때 ` QT_NO_CAST_FROM_ASCII `를 정의하여 이 함수를 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 ` QObject::tr()`를 반드시 거치도록 보장하고자 할 때 유용할 수 있습니다.
이 함수는 QString::operator+=()을 오버로드합니다.
[noexcept] QString &QString::operator=(QString &&other)
other 를 이 QString 인스턴스에 할당합니다.
[noexcept] QString &QString::operator=(const QString &other)
이 문자열에 ` other `를 할당하고, 이 문자열에 대한 참조를 반환합니다.
QString &QString::operator=(QChar ch)
문자열에 단일 문자 ‘ ch ’를 포함하도록 설정합니다.
이 함수는 ` QString::operator=()`을 오버로드합니다.
QString &QString::operator=(QLatin1StringView str)
str 가 인식하는 Latin-1 문자열을 이 문자열에 할당합니다.
이 함수는 ` QString::operator=()`를 오버로드합니다.
QString &QString::operator=(const QByteArray &ba)
이 문자열에 ` ba `를 할당합니다. 바이트 배열은 ` fromUtf8()` 함수를 사용하여 유니코드로 변환됩니다.
애플리케이션을 컴파일할 때 ` QT_NO_CAST_FROM_ASCII `을 정의하여 이 연산자를 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 반드시 ` QObject::tr()`을 거치도록 보장하고자 할 때 유용할 수 있습니다.
이 함수는 QString::operator=()을 오버로드합니다.
QString &QString::operator=(const char *str)
이 문자열에 str 를 할당합니다. const char 포인터는 fromUtf8() 함수를 사용하여 유니코드로 변환됩니다.
응용 프로그램을 컴파일할 때 ` QT_NO_CAST_FROM_ASCII ` 또는 ` QT_RESTRICTED_CAST_FROM_ASCII `을 정의하여 이 연산자를 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 ` QObject::tr()`을 반드시 거치도록 보장하고자 할 때 이 방법이 유용할 수 있습니다.
이 함수는 QString::operator=()을 오버로드합니다.
QChar &QString::operator[](qsizetype position)
문자열에서 지정된 위치( position )에 있는 문자를 수정 가능한 참조로 반환합니다.
예:
참조: at().
const QChar QString::operator[](qsizetype position) const
이 함수는 ` QString::operator[]()`를 오버로드합니다.
관련 비회원 요소
[since 6.1] template <typename T> qsizetype erase(QString &s, const T &t)
문자열 ` s`에서 ` t `와 동일한 모든 요소를 제거합니다. 제거된 요소가 있는 경우, 그 개수를 반환합니다.
이 함수는 Qt 6.1에서 도입되었습니다.
erase_if도 참조하십시오 .
[since 6.1] template <typename Predicate> qsizetype erase_if(QString &s, Predicate pred)
pred 조건식이 true를 반환하는 모든 요소를 문자열 s 에서 제거합니다. 제거된 요소가 있는 경우, 그 개수를 반환합니다.
이 함수는 Qt 6.1에서 도입되었습니다.
erase도 참조하십시오 .
[noexcept] bool operator!=(const QByteArray &lhs, const QString &rhs)
바이트 배열 lhs 이 rhs 의 UTF-8 인코딩과 일치하지 않으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.
이 비교는 대소문자를 구분합니다.
응용 프로그램을 컴파일할 때 QT_NO_CAST_FROM_ASCII 를 정의하여 이 연산자를 비활성화할 수 있습니다. 이 경우, 비교를 수행하기 전에 바이트 배열을 QString 로 변환하려면 QString::fromUtf8(), QString::fromLatin1() 또는 QString::fromLocal8Bit()을 명시적으로 호출해야 합니다.
[noexcept] bool operator!=(const QString &lhs, const QString &rhs)
문자열 lhs 이 문자열 rhs 과 다를 경우 true 을 반환하고, 그렇지 않은 경우 false 을 반환합니다.
Comparing Strings도 참조하십시오 .
[noexcept] bool operator!=(const char *const &lhs, const QString &rhs)
lhs 가 rhs 와 다를 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
lhs!= 0인 경우, 이는 compare( lhs , rhs ) != 0 과 동일합니다. lhs 이 0인 문자열은 존재하지 않는다는 점에 유의하십시오.
[noexcept] bool operator!=(const QString &lhs, const QByteArray &rhs)
rhs 바이트 배열은 QUtf8StringView 로 변환됩니다. 바이트 배열에 NUL 문자('\0')가 포함되어 있는 경우, 해당 문자도 변환 대상에 포함됩니다.
애플리케이션을 컴파일할 때 ` QT_NO_CAST_FROM_ASCII `를 정의하여 이 연산자를 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 ` QObject::tr()`를 반드시 거치도록 보장하고자 할 때 이 방법이 유용할 수 있습니다.
이 함수는 QString::operator!=()을 오버로드합니다.
[noexcept] bool operator!=(const QString &lhs, const QLatin1StringView &rhs)
문자열 lhs 가 문자열 rhs 와 다를 경우 true 를 반환합니다. 그렇지 않은 경우 false 를 반환합니다.
이 함수는 ` QString::operator!=()`을 오버로드합니다.
[noexcept] bool operator!=(const QString &lhs, const char *const &rhs)
rhs 상수 char 포인터는 QUtf8StringView 로 변환됩니다.
애플리케이션을 컴파일할 때 ` QT_NO_CAST_FROM_ASCII `를 정의하여 이 연산자를 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 ` QObject::tr()`를 반드시 거치도록 보장하고자 할 때 이 방법이 유용할 수 있습니다.
이 함수는 QString::operator!=()을 오버로드합니다.
[noexcept, since 6.4] QString operator""_s(const char16_t *str, size_t size)
char16_t 문자열 리터럴 str 의 첫 번째 size 개의 문자를 사용하여 QString 를 생성하는 리터럴 연산자입니다.
QString 는 컴파일 시점에 생성되며, 생성된 문자열 데이터는 컴파일된 객체 파일의 읽기 전용 세그먼트에 저장됩니다. 중복된 리터럴은 동일한 읽기 전용 메모리를 공유할 수 있습니다. 이 기능은 QStringLiteral 와 상호 교환 가능하지만, 코드에 많은 문자열 리터럴이 존재할 때 입력 작업을 줄여줍니다.
다음 코드는 QString 를 생성합니다:
using namespace Qt::StringLiterals;
auto str = u"hello"_s;이 함수는 Qt 6.4에서 도입되었습니다.
Qt::Literals::StringLiterals도 참조하십시오 .
QString operator+(QString &&s1, const QString &s2)
QString operator+(const QString &s1, const QString &s2)
s1 와 s2 를 연결한 결과인 문자열을 반환합니다.
[since 6.9] QString operator+(QStringView lhs, const QString &rhs)
[since 6.9] QString operator+(const QString &lhs, QStringView rhs)
lhs 와 rhs 를 연결한 결과인 문자열을 반환합니다.
이 함수들은 Qt 6.9에서 도입되었습니다.
QString operator+(const QString &s1, const char *s2)
s1 와 s2 를 연결한 결과인 문자열을 반환합니다(s2 는 QString::fromUtf8() 함수를 사용하여 유니코드로 변환됩니다).
QString::fromUtf8()도 참조하십시오 .
QString operator+(const char *s1, const QString &s2)
s1 와 s2 를 연결한 결과인 문자열을 반환합니다(s1 는 QString::fromUtf8() 함수를 사용하여 유니코드로 변환됩니다).
QString::fromUtf8()도 참조하십시오 .
[noexcept] bool operator<(const QByteArray &lhs, const QString &rhs)
바이트 배열 lhs 이 rhs 의 UTF-8 인코딩보다 어휘적으로 작을 경우 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.
이 비교는 대소문자를 구분합니다.
응용 프로그램을 컴파일할 때 QT_NO_CAST_FROM_ASCII 를 정의하여 이 연산자를 비활성화할 수 있습니다. 이 경우, 비교를 수행하기 전에 바이트 배열을 QString 로 변환하려면 QString::fromUtf8(), QString::fromLatin1() 또는 QString::fromLocal8Bit()을 명시적으로 호출해야 합니다.
[noexcept] bool operator<(const char *const &lhs, const QString &rhs)
lhs 가 rhs 보다 어휘적으로 작으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다. lhs!= 0인 경우, 이는 compare(lhs, rhs) < 0 와 동일합니다.
Comparing Strings도 참조하십시오 .
[noexcept] bool operator<(const QLatin1StringView &lhs, const QString &rhs)
lhs 가 rhs 보다 어휘적으로 작을 경우 true 을 반환하고, 그렇지 않은 경우 false 을 반환합니다.
이 함수는 ` QString::operator<()`을 오버로드합니다.
[noexcept] bool operator<(const QString &lhs, const QByteArray &rhs)
rhs 바이트 배열은 QUtf8StringView 로 변환됩니다. 바이트 배열에 NUL 문자('\0')가 포함되어 있는 경우, 해당 문자들도 변환 과정에 포함됩니다.
애플리케이션을 컴파일할 때 이 연산자 ` QT_NO_CAST_FROM_ASCII `를 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 ` QObject::tr()`를 반드시 거치도록 보장하고자 할 때 이 기능이 유용할 수 있습니다.
이 함수는 QString::operator<()을 오버로드합니다.
[noexcept] bool operator<(const QString &lhs, const QLatin1StringView &rhs)
lhs 가 rhs 보다 어휘적으로 작을 경우 true 을 반환하고, 그렇지 않은 경우 false 을 반환합니다.
이 함수는 ` QString::operator<()`을 오버로드합니다.
[noexcept] bool operator<(const QString &lhs, const QString &rhs)
문자열 lhs 이 문자열 rhs 보다 어휘적으로 작을 경우 true 을 반환하고, 그렇지 않은 경우 false 을 반환합니다.
이 함수는 ` QString::operator<()`을 오버로드합니다.
Comparing Strings도 참조하십시오 .
[noexcept] bool operator<(const QString &lhs, const char *const &rhs)
문자열 ` lhs `이 문자열 ` rhs`보다 어휘적으로 작을 경우 ` true `을 반환합니다. 그렇지 않은 경우 ` false`을 반환합니다.
rhs 상수 char 포인터는 QUtf8StringView 로 변환됩니다.
응용 프로그램을 컴파일할 때 ` QT_NO_CAST_FROM_ASCII `를 정의하여 이 연산자를 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 ` QObject::tr()`를 거치도록 보장하려는 경우 이 기능이 유용할 수 있습니다.
이 함수는 QString::operator<()을 오버로드합니다.
QDataStream &operator<<(QDataStream &stream, const QString &string)
지정된 ` string `를 지정된 ` stream`에 기록합니다.
'Qt 데이터 유형 직렬화'항목도 참조하십시오 .
[noexcept] bool operator<=(const QByteArray &lhs, const QString &rhs)
바이트 배열 lhs 이 rhs 의 UTF-8 인코딩보다 어휘적으로 작거나 같으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.
이 비교는 대소문자를 구분합니다.
응용 프로그램을 컴파일할 때 QT_NO_CAST_FROM_ASCII 를 정의하여 이 연산자를 비활성화할 수 있습니다. 이 경우, 비교를 수행하기 전에 바이트 배열을 QString 로 변환하려면 QString::fromUtf8(), QString::fromLatin1() 또는 QString::fromLocal8Bit()을 명시적으로 호출해야 합니다.
[noexcept] bool operator<=(const QString &lhs, const QString &rhs)
문자열 lhs 이 문자열 rhs 보다 어휘적으로 작거나 같으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
Comparing Strings도 참조하십시오 .
[noexcept] bool operator<=(const char *const &lhs, const QString &rhs)
lhs 가 rhs 보다 어휘적으로 작거나 같으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다. lhs!= 0인 경우, 이는 compare(lhs, rhs) <= 0 와 동일합니다.
Comparing Strings도 참조하십시오 .
[noexcept] bool operator<=(const QLatin1StringView &lhs, const QString &rhs)
lhs 가 rhs 보다 어휘적으로 작거나 같으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
이 함수는 QString::operator<=()를 오버로드합니다.
[noexcept] bool operator<=(const QString &lhs, const QByteArray &rhs)
rhs 바이트 배열은 QUtf8StringView 로 변환됩니다. 바이트 배열에 NUL 문자('\0')가 포함되어 있는 경우, 이 문자들도 변환 대상에 포함됩니다.
애플리케이션을 컴파일할 때 ` QT_NO_CAST_FROM_ASCII `를 정의하여 이 연산자를 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 ` QObject::tr()`를 반드시 거치도록 보장하고자 할 때 이 방법이 유용할 수 있습니다.
이 함수는 QString::operator<=()을 오버로드합니다.
[noexcept] bool operator<=(const QString &lhs, const QLatin1StringView &rhs)
lhs 가 rhs 보다 어휘적으로 작거나 같으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
이 함수는 QString::operator<=()을 오버로드합니다.
[noexcept] bool operator<=(const QString &lhs, const char *const &rhs)
rhs 상수 char 포인터는 QUtf8StringView 로 변환됩니다.
응용 프로그램을 컴파일할 때 QT_NO_CAST_FROM_ASCII 을 정의하면 이 연산자를 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 QObject::tr()를 반드시 거치도록 보장하고자 할 때 이 방법이 유용할 수 있습니다.
이 함수는 QString::operator<=()을 오버로드합니다.
[noexcept] bool operator==(const QByteArray &lhs, const QString &rhs)
바이트 배열 lhs 이 rhs 의 UTF-8 인코딩과 일치하면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.
이 비교는 대소문자를 구분합니다.
응용 프로그램을 컴파일할 때 QT_NO_CAST_FROM_ASCII 를 정의하여 이 연산자를 비활성화할 수 있습니다. 이 경우, 비교를 수행하기 전에 바이트 배열을 QString 로 변환하려면 QString::fromUtf8(), QString::fromLatin1() 또는 QString::fromLocal8Bit()을 명시적으로 호출해야 합니다.
[noexcept] bool operator==(const QLatin1StringView &lhs, const QString &rhs)
lhs 가 rhs 와 같으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
이 함수는 QString::operator==()을 오버로드합니다.
[noexcept] bool operator==(const QString &lhs, const QByteArray &rhs)
rhs 바이트 배열은 QUtf8StringView 로 변환됩니다.
애플리케이션을 컴파일할 때 ` QT_NO_CAST_FROM_ASCII `를 정의하여 이 연산자를 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 ` QObject::tr()`를 반드시 거치도록 보장하고자 할 때 이 방법이 유용할 수 있습니다.
문자열 lhs 이 rhs 과 어휘적으로 동일하면 true 을 반환합니다. 그렇지 않으면 false 을 반환합니다.
이 함수는 QString::operator==()을 오버로드합니다.
[noexcept] bool operator==(const QString &lhs, const QLatin1StringView &rhs)
lhs 가 rhs 와 같으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
이 함수는 QString::operator==()을 오버로드합니다.
[noexcept] bool operator==(const QString &lhs, const QString &rhs)
문자열 lhs 이 문자열 rhs 과 같으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.
참고: 이 함수는 null 문자열을 빈 문자열과 동일하게 취급합니다. 자세한 내용은 Distinction Between Null and Empty Strings 을 참조하십시오.
이 함수는 QString::operator==()을 오버로드합니다.
Comparing Strings도 참조하십시오 .
[noexcept] bool operator==(const QString &lhs, const char *const &rhs)
rhs 상수 char 포인터는 QUtf8StringView 로 변환됩니다.
응용 프로그램을 컴파일할 때 ` QT_NO_CAST_FROM_ASCII `를 정의하면 이 연산자를 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 ` QObject::tr()`를 반드시 거치도록 보장하고자 할 때 이 방법이 유용할 수 있습니다.
이 함수는 QString::operator==()을 오버로드합니다.
[noexcept] bool operator==(const char *const &lhs, const QString &rhs)
lhs 가 rhs 와 같으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다. lhs 가 0인 경우, 어떤 문자열과도 같지 않다는 점에 유의하십시오.
lhs != 0 && compare(lhs, rhs) == 0 와 동일합니다.
이 함수는 QString::operator==()를 오버로드합니다.
[noexcept] bool operator>(const QByteArray &lhs, const QString &rhs)
바이트 배열 lhs 이 rhs 의 UTF-8 인코딩보다 어휘적으로 크면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
이 비교는 대소문자를 구분합니다.
응용 프로그램을 컴파일할 때 QT_NO_CAST_FROM_ASCII 을 정의하여 이 연산자를 비활성화할 수 있습니다. 이 경우, 비교를 수행하기 전에 바이트 배열을 QString 로 변환하려면 QString::fromUtf8(), QString::fromLatin1() 또는 QString::fromLocal8Bit()을 명시적으로 호출해야 합니다.
[noexcept] bool operator>(const QString &lhs, const QString &rhs)
문자열 lhs 이 문자열 rhs 보다 어휘적으로 크면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.
Comparing Strings도 참조하십시오 .
[noexcept] bool operator>(const char *const &lhs, const QString &rhs)
lhs 가 rhs 보다 어휘적으로 크면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다. compare(lhs, rhs) > 0 와 동일합니다.
Comparing Strings도 참조하십시오 .
[noexcept] bool operator>(const QLatin1StringView &lhs, const QString &rhs)
lhs 가 rhs 보다 어휘적으로 크면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
이 함수는 ` QString::operator>()`를 오버로드합니다.
[noexcept] bool operator>(const QString &lhs, const QByteArray &rhs)
rhs 바이트 배열은 QUtf8StringView 로 변환됩니다. 바이트 배열에 NUL 문자('\0')가 포함되어 있는 경우, 해당 문자도 변환 대상에 포함됩니다.
애플리케이션을 컴파일할 때 QT_NO_CAST_FROM_ASCII 를 정의하여 이 연산자를 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 QObject::tr()을 반드시 거치도록 보장하고자 할 때 이 방법이 유용할 수 있습니다.
이 함수는 QString::operator>()을 오버로드합니다.
[noexcept] bool operator>(const QString &lhs, const QLatin1StringView &rhs)
lhs 가 rhs 보다 어휘적으로 크면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
이 함수는 ` QString::operator>()`을 오버로드합니다.
[noexcept] bool operator>(const QString &lhs, const char *const &rhs)
rhs 상수 char 포인터는 QUtf8StringView 로 변환됩니다.
응용 프로그램을 컴파일할 때 ` QT_NO_CAST_FROM_ASCII `을 정의하면 이 연산자를 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 ` QObject::tr()`를 반드시 거치도록 보장하고자 할 때 이 방법이 유용할 수 있습니다.
이 함수는 QString::operator>()을 오버로드합니다.
[noexcept] bool operator>=(const QByteArray &lhs, const QString &rhs)
바이트 배열 lhs 이 rhs 의 UTF-8 인코딩보다 크거나 같으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.
이 비교는 대소문자를 구분합니다.
응용 프로그램을 컴파일할 때 QT_NO_CAST_FROM_ASCII 를 정의하여 이 연산자를 비활성화할 수 있습니다. 이 경우, 비교를 수행하기 전에 바이트 배열을 QString 로 변환하려면 QString::fromUtf8(), QString::fromLatin1() 또는 QString::fromLocal8Bit()을 명시적으로 호출해야 합니다.
[noexcept] bool operator>=(const QString &lhs, const QString &rhs)
문자열 lhs 이 문자열 rhs 보다 어휘적으로 크거나 같으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.
Comparing Strings도 참조하십시오 .
[noexcept] bool operator>=(const char *const &lhs, const QString &rhs)
lhs 가 rhs 보다 어휘적으로 크거나 같을 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다. lhs!= 0인 경우, 이는 compare(lhs, rhs) >= 0 와 동일합니다.
Comparing Strings도 참조하십시오 .
[noexcept] bool operator>=(const QLatin1StringView &lhs, const QString &rhs)
lhs 가 rhs 보다 어휘적으로 크거나 같으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
이 함수는 ` QString::operator>=()`을 오버로드합니다.
[noexcept] bool operator>=(const QString &lhs, const QByteArray &rhs)
rhs 바이트 배열은 QUtf8StringView 로 변환됩니다. 바이트 배열에 NUL 문자('\0')가 포함되어 있는 경우, 해당 문자도 변환 대상에 포함됩니다.
애플리케이션을 컴파일할 때 ` QT_NO_CAST_FROM_ASCII `를 정의하여 이 연산자를 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 ` QObject::tr()`을 반드시 거치도록 보장하고자 할 때 이 방법이 유용할 수 있습니다.
이 함수는 QString::operator>=()을 오버로드합니다.
[noexcept] bool operator>=(const QString &lhs, const QLatin1StringView &rhs)
lhs 가 rhs 보다 어휘적으로 크거나 같으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
이 함수는 ` QString::operator>=()`을 오버로드합니다.
[noexcept] bool operator>=(const QString &lhs, const char *const &rhs)
rhs 상수 char 포인터는 QUtf8StringView 로 변환됩니다.
응용 프로그램을 컴파일할 때 QT_NO_CAST_FROM_ASCII 을 정의하면 이 연산자를 비활성화할 수 있습니다. 예를 들어, 사용자에게 표시되는 모든 문자열이 QObject::tr()를 통해 처리되도록 보장하고자 할 때 이 방법이 유용할 수 있습니다.
이 함수는 QString::operator>=()을 오버로드합니다.
QDataStream &operator>>(QDataStream &stream, QString &string)
지정된 ` stream `에서 문자열을 읽어와 주어진 ` string`에 저장합니다.
Qt 데이터 유형의 직렬화항목도 참조하십시오 .
매크로 문서
QStringLiteral(str)
이 매크로는 컴파일 시점에 문자열 리터럴 ` str `을 사용하여 ` QString `에 대한 데이터를 생성합니다. 이 경우 이를 기반으로 ` QString `을 생성하는 데는 비용이 들지 않으며, 생성된 문자열 데이터는 컴파일된 객체 파일의 읽기 전용 세그먼트에 저장됩니다.
다음과 같은 코드가 있다면:
// hasAttribute takes a QString argument
if (node.hasAttribute("http-contents-length")) {
//...
}이 경우 hasAttribute 함수의 매개변수로 전달하기 위해 임시 QString 가 생성됩니다. 이는 메모리 할당과 데이터를 QString 의 내부 인코딩으로 복사/변환하는 과정을 수반하므로 상당히 높은 비용이 발생할 수 있습니다.
대신 QStringLiteral을 사용하면 이러한 비용을 피할 수 있습니다:
if (node.hasAttribute(QStringLiteral(u"http-contents-length"))){
//...
}이 경우, ` QString`의 내부 데이터는 컴파일 시점에 생성되며, 런타임에는 변환이나 할당이 발생하지 않습니다.
이중 따옴표로 묶인 일반 C++ 문자열 리터럴 대신 QStringLiteral을 사용하면, 컴파일 시점에 알려진 데이터로부터 QString 인스턴스를 생성하는 속도를 크게 높일 수 있습니다.
참고: 문자열이 QLatin1StringView 을 인수로 받는 오버로드를 가진 함수로 전달되고, 이 오버로드가 QString 로의 변환을 피하는 경우,QLatin1StringView 이 QStringLiteral보다 더 효율적일 수 있습니다. 예를 들어, QString::operator==()는 QLatin1StringView 과 직접 비교할 수 있습니다:
if (attribute.name() == "http-contents-length"_L1){
//...
}참고: 일부 컴파일러는 US-ASCII 문자 집합 외의 문자가 포함된 문자열을 인코딩할 때 버그가 발생할 수 있습니다. 이러한 경우에는 문자열 앞에 u 를 반드시 붙이십시오. 그 외의 경우에는 선택 사항입니다.
참고: QStringLiteral은 operator""_s 과 상호 교환 가능합니다. 코드에 문자열 리터럴이 많이 포함된 경우 후자를 사용하면 입력 시간을 절약할 수 있습니다.
QByteArrayLiteral도 참조하십시오 .
QT_NO_CAST_FROM_ASCII
8비트 문자열(char *)을 유니코드 QString으로의 자동 변환과, 8비트 char 유형(char 및 unsigned char)을 QChar 로 변환하는 기능을 비활성화합니다.
QT_NO_CAST_TO_ASCII, QT_RESTRICTED_CAST_FROM_ASCII 및 QT_NO_CAST_FROM_BYTEARRAY도 참조하십시오 .
QT_NO_CAST_TO_ASCII
QString 에서 8비트 문자열로의 자동 변환을 비활성화합니다 (char *).
QT_NO_CAST_FROM_ASCII, QT_RESTRICTED_CAST_FROM_ASCII 및 QT_NO_CAST_FROM_BYTEARRAY도 참조하십시오 .
QT_RESTRICTED_CAST_FROM_ASCII
소스 리터럴 및 8비트 데이터에서 유니코드 QString으로의 대부분의 자동 변환을 비활성화하지만, ` QChar(char) ` 및 ` QString(const char (&ch)[N] ` 생성자와 ` QString::operator=(const char (&ch)[N]) ` 할당 연산자의 사용은 허용합니다. 이를 통해 ` QT_NO_CAST_FROM_ASCII `의 유형 안전성 이점 대부분을 제공하면서도, 사용자 코드에서 문자 및 문자열 리터럴을 ` QLatin1Char`, ` QLatin1StringView ` 또는 이와 유사한 형태로 래핑할 필요가 없습니다.
이 매크로를 7비트 범위를 벗어난 소스 문자열, 리터럴이 아닌 요소, 또는 NUL 문자가 포함된 리터럴과 함께 사용하는 경우의 동작은 정의되지 않습니다.
QT_NO_CAST_FROM_ASCII 및 QT_NO_CAST_TO_ASCII도 참조하십시오 .
const char *qPrintable(const QString &str)
str 를 const char * 로 반환합니다. 이는 str,toLocal8Bit(),constData()와 동일합니다.
qPrintable()가 사용된 문장이 실행된 후에는 char 포인터가 무효화됩니다. 이는 QString::toLocal8Bit()가 반환한 배열이 범위(scope)를 벗어나기 때문입니다.
참고: qDebug(), qInfo(), qWarning(), qCritical(), qFatal()는 %s 인자가 UTF-8로 인코딩되어 있을 것으로 가정하는 반면, qPrintable()은 로컬 8비트 인코딩으로 변환합니다. 따라서 문자열 로깅에는 qPrintable() 대신 qUtf8Printable()을 사용해야 합니다.
qUtf8Printable()도 참조하십시오 .
const wchar_t *qUtf16Printable(const QString &str)
str 를 const ushort * 로 반환하지만, 경고가 발생하지 않도록 const wchar_t * 로 형변환합니다. 이는 str.utf16()에 몇 가지 형변환을 더한 것과 동일합니다.
이 매크로의 반환값으로 할 수 있는 유일한 유용한 작업은 %ls 변환에 사용하기 위해 이를 QString::asprintf()에 전달하는 것입니다. 특히, 반환값은 유효한 const wchar_t* 가 아닙니다!
일반적으로 qUtf16Printable()이 사용된 문이 실행된 후에는 포인터가 무효해집니다. 이는 포인터가 임시 표현식에서 얻어진 것일 수 있으며, 해당 표현식이 범위 밖으로 빠져나가기 때문입니다.
예시:
qWarning("%ls: %ls", qUtf16Printable(key), qUtf16Printable(value));관련 항목: qPrintable(), qDebug(), qInfo(), qWarning(), qCritical(), qFatal().
const char *qUtf8Printable(const QString &str)
str 을 const char * 로 반환합니다. 이는 str,toUtf8(),constData()과 동일합니다.
qUtf8Printable()가 사용된 문장이 실행된 후에는 char 포인터가 무효화됩니다. 이는 QString::toUtf8()가 반환하는 배열이 범위 밖으로 벗어나기 때문입니다.
예시:
qWarning("%s: %s", qUtf8Printable(key), qUtf8Printable(value));qPrintable(), qDebug(), qInfo(), qWarning(), qCritical(), qFatal()도 참조하십시오 .
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.