QByteArray Class

QByteArray 클래스는 바이트 배열을 제공합니다. 더 보기...

Header: #include <QByteArray>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

이 클래스는 매우 유사합니다.

이 클래스는 const char * 및 QByteArrayView매우 유사합니다.

이 클래스는 QChar, char16_t, QString, QStringView, QLatin1StringView, QUtf8StringView매우 유사합니다.

문자열 유형과 비교할 때 콘텐츠는 utf-8로 해석됩니다.

참고: 이 클래스의 모든 함수는 재인용됩니다.

공용 타입

class FromBase64Result
enum Base64Option { Base64Encoding, Base64UrlEncoding, KeepTrailingEquals, OmitTrailingEquals, IgnoreBase64DecodingErrors, AbortOnBase64DecodingErrors }
flags Base64Options
const_iterator
const_reverse_iterator
iterator
reverse_iterator

공용 함수

QByteArray()
QByteArray(const char *data, qsizetype size = -1)
QByteArray(qsizetype size, Qt::초기화)
QByteArray(qsizetype size, char ch)
QByteArray(const QByteArray &other)
QByteArray(QByteArray &&다른)
~QByteArray()
QByteArray & &다른append(const QByteArray &ba)
QByteArray &append(QByteArrayView 데이터)
QByteArray &append(char ch)
QByteArray &append(const char *str)
QByteArray &append(const char *str, qsizetype len)
QByteArray &append(qsizetype count, char ch)
(since 6.6) QByteArray &assign(QByteArrayView v)
(since 6.6) QByteArray &assign(입력 이터레이터 첫 번째, 입력 이터레이터 마지막)
(since 6.6) QByteArray &assign(qsizetype n, char c)
char at(qsizetype i) const
char &back()
char back() const
QByteArray::이터레이터 begin()
QByteArray::const_iterator begin() const
qsizetype capacity() const
QByteArray::const_iterator cbegin() const
QByteArray::const_iterator cend() const
void chop(qsizetype n)
QByteArray chopped(qsizetype len) &&
QByteArray chopped(qsizetype len) const && (큐사이즈형 )
void clear()
(since 6.0) int compare(QByteArrayView bv, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QByteArray::const_iterator constBegin() const
const char *constData() const
QByteArray::const_iterator constEnd() const
(since 6.0) bool contains(QByteArrayView bv) const
bool contains(char ch) const
(since 6.0) qsizetype count(QByteArrayView bv) const
qsizetype count(char ch) const
QByteArray::const_reverse_iterator crbegin() const
QByteArray::const_reverse_iterator crend() const
char *data()
const char *data() const
QByteArray::이터레이터 end()
QByteArray::const_iterator end() const
(since 6.0) bool endsWith(QByteArrayView bv) const
bool endsWith(char ch) const
(since 6.1) QByteArray::이터레이터 erase(QByteArray::const_iterator first, QByteArray::const_iterator last)
(since 6.5) QByteArray::이터레이터 erase(QByteArray::const_iterator it)
QByteArray &fill(char ch, qsizetype size = -1)
(since 6.0) QByteArray first(qsizetype n) &&
(since 6.0) QByteArray first(qsizetype n) const &&
char &front()
char front() const
(since 6.0) qsizetype indexOf(QByteArrayView bv, qsizetype from = 0) const
qsizetype indexOf(char ch, qsizetype from = 0) const
(since 6.0) QByteArray &insert(qsizetype i, QByteArrayView data)
QByteArray &insert(qsizetype i, const QByteArray &data)
QByteArray &insert(qsizetype i, const char *s)
QByteArray &insert(qsizetype i, char ch)
QByteArray &insert(qsizetype i, const char *data, qsizetype len)
QByteArray &insert(qsizetype i, qsizetype count, char ch)
bool isEmpty() const
bool isLower() const
bool isNull() const
bool isUpper() const
(since 6.3) bool isValidUtf8() const
(since 6.0) QByteArray last(qsizetype n) &&
(since 6.0) QByteArray last(qsizetype n) const && &QByteArray
(since 6.0) qsizetype lastIndexOf(QByteArrayView bv, qsizetype from) const
(since 6.2) qsizetype lastIndexOf(QByteArrayView bv) const
qsizetype lastIndexOf(char ch, qsizetype from = -1) const
QByteArray left(qsizetype len) &&
QByteArray left(qsizetype len) const &&
QByteArray leftJustified(qsizetype width, char fill = ' ', bool truncate = false) const
qsizetype length() const
(since 6.8) qsizetype max_size() const
QByteArray mid(qsizetype pos, qsizetype len = -1) &&
QByteArray mid(qsizetype pos, qsizetype len = -1) const && (qsizetype pos, qsizetype len = -1) const
(since 6.4) QByteArray percentDecoded(char percent = '%') const
QByteArray &prepend(QByteArrayView ba)
QByteArray &prepend(char ch)
QByteArray &prepend(const QByteArray &ba)
QByteArray &prepend(const char *str)
QByteArray &prepend(const char *str, qsizetype len)
QByteArray &prepend(qsizetype count, char ch)
void push_back(const QByteArray &other)
(since 6.0) void push_back(QByteArrayView str)
void push_back(char ch)
void push_back(const char *str)
void push_front(const QByteArray &다른)
(since 6.0) void push_front(QByteArrayView str)
void push_front(char ch)
void push_front(const char *str)
QByteArray::reverse_iterator rbegin()
QByteArray::const_reverse_iterator rbegin() const
QByteArray &remove(qsizetype pos, qsizetype len)
(since 6.5) QByteArray &removeAt(qsizetype pos)
(since 6.5) QByteArray &removeFirst()
(since 6.1) QByteArray & (removeIf(술어 pred)
(since 6.5) QByteArray & (removeLast()
QByteArray::역_이터레이터 rend()
QByteArray::const_reverse_iterator rend() const
QByteArray repeated(qsizetype times) const
QByteArray &replace(qsizetype pos, qsizetype len, QByteArrayView after)
(since 6.0) QByteArray &replace(QByteArrayView before, QByteArrayView after)
QByteArray &replace(문자 이전, QByteArrayView 이후)
QByteArray &replace(문자 이전, 문자 이후)
QByteArray &replace(const char *before, qsizetype bsize, const char *after, qsizetype asize)
QByteArray &replace(qsizetype pos, qsizetype len, const char *after, qsizetype alen)
void reserve(qsizetype size)
void resize(qsizetype size)
(since 6.4) void resize(qsizetype newSize, char c)
(since 6.8) void resizeForOverwrite(qsizetype size)
QByteArray right(qsizetype len) &&
QByteArray right(qsizetype len) const && (qsizetype 크기)
QByteArray rightJustified(qsizetype width, char fill = ' ', bool truncate = false) const
QByteArray &setNum(int n, int base = 10)
QByteArray &setNum(long n, int base = 10)
QByteArray &setNum(qlonglong n, int base = 10)
QByteArray &setNum(qlonglong n, int base = 10)
QByteArray &setNum(짧은 n, int base = 10)
QByteArray &setNum(uint n, int base = 10)
QByteArray &setNum(울롱 n, int base = 10)
QByteArray &setNum(유쇼트 n, int base = 10)
QByteArray &setNum(double n, char 형식 = 'g', int 정밀도 = 6)
QByteArray &setNum(float n, char 형식 = 'g', int 정밀도 = 6)
QByteArray &setRawData(const char *데이터, qsizetype size)
void shrink_to_fit()
QByteArray simplified() const
qsizetype size() const
(since 6.8) QByteArray &slice(qsizetype pos, qsizetype n)
(since 6.8) QByteArray &slice(qsizetype pos)
(since 6.0) QByteArray sliced(qsizetype pos, qsizetype n) &&
(since 6.0) QByteArray sliced(qsizetype pos, qsizetype n) const & &.
(since 6.0) QByteArray sliced(qsizetype pos) &&
(since 6.0) QByteArray sliced(qsizetype pos) const && QByteArray
QList<QByteArray> split(char sep) const
void squeeze()
(since 6.0) bool startsWith(QByteArrayView bv) const
bool startsWith(char ch) const
void swap(QByteArray &다른)
QByteArray toBase64(QByteArray::Base64Options 옵션 = Base64Encoding) const
CFDataRef toCFData() const
double toDouble(bool *ok = nullptr) const
(since 6.5) emscripten::val toEcmaUint8Array()
float toFloat(bool *ok = nullptr) const
QByteArray toHex(문자 구분자 = '\0') const
int toInt(bool *ok = nullptr, int base = 10) const
long toLong(bool *ok = nullptr, int base = 10) const
qlonglong toLongLong(bool *ok = nullptr, int base = 10) const
QByteArray toLower() const
NSData *toNSData() const
QByteArray toPercentEncoding(const QByteArray &exclude = QByteArray(), const QByteArray &include = QByteArray(), char percent = '%') const
CFDataRef toRawCFData() const
NSData *toRawNSData() const
short toShort(bool *ok = nullptr, int base = 10) const
std::string toStdString() 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
QByteArray toUpper() const
QByteArray trimmed() const
void truncate(qsizetype pos)
const char *operator const char *() const
const void *operator const void *() const
QByteArray &operator+=(const QByteArray &ba)
QByteArray &operator+=(char ch)
QByteArray &operator+=(const char *str)
QByteArray &operator=(QByteArray &&기타)
QByteArray &operator=(const QByteArray &other)
QByteArray &operator=(const char *str)
char &operator[](qsizetype i)
char operator[](qsizetype i) const

정적 공용 멤버

QByteArray fromBase64(const QByteArray &base64, QByteArray::Base64Options options = Base64Encoding)
QByteArray::FromBase64Result fromBase64Encoding(QByteArray &&base64, QByteArray::Base64Options options = Base64Encoding)
QByteArray::FromBase64Result fromBase64Encoding(const QByteArray &base64, QByteArray::Base64Options options = Base64Encoding)
QByteArray fromCFData(CFDataRef data)
(since 6.5) QByteArray fromEcmaUint8Array(emscripten::val uint8array)
QByteArray fromHex(const QByteArray &hexEncoded)
QByteArray fromNSData(const NSData *data)
QByteArray fromPercentEncoding(const QByteArray &input, char percent = '%')
QByteArray fromRawCFData(CFDataRef data)
QByteArray fromRawData(const char *data, qsizetype size)
QByteArray fromRawNSData(const NSData *data)
QByteArray fromStdString(const std::string &str)
(since 6.8) qsizetype maxSize()
QByteArray number(int n, int base = 10)
QByteArray number(long n, int base = 10)
QByteArray number(qlonglong n, int base = 10)
QByteArray number(qulonglong n, int base = 10)
QByteArray number(uint n, int base = 10)
QByteArray number(ulong n, int base = 10)
QByteArray number(double n, char format = 'g', int precision = 6)
(since 6.1) qsizetype erase(QByteArray &ba, const T &t)
(since 6.1) qsizetype erase_if(QByteArray &ba, Predicate pred)
quint16 qChecksum(QByteArrayView data, Qt::ChecksumType standard = Qt::ChecksumIso3309)
QByteArray qCompress(const QByteArray &data, int compressionLevel = -1)
QByteArray qCompress(const uchar *data, qsizetype nbytes, int compressionLevel = -1)
QByteArray qUncompress(const QByteArray &data)
QByteArray qUncompress(const uchar *data, qsizetype nbytes)
int qstrcmp(const char *str1, const char *str2)
char *qstrcpy(char *dst, const char *src)
char *qstrdup(const char *src)
int qstricmp(const char *str1, const char *str2)
size_t qstrlen(const char *str)
int qstrncmp(const char *str1, const char *str2, size_t len)
char *qstrncpy(char *dst, const char *src, size_t len)
int qstrnicmp(const char *str1, const char *str2, size_t len)
size_t qstrnlen(const char *str, size_t maxlen)
bool operator!=(const QByteArray &lhs, const QByteArray &rhs)
bool operator!=(const QByteArray &lhs, const char *const &rhs)
bool operator!=(const char *const &lhs, const QByteArray &rhs)
(since 6.4) QByteArray operator""_ba(const char *str, size_t size)
QByteArray operator+(char a1, const QByteArray &a2)
QByteArray operator+(const QByteArray &a1, char a2)
QByteArray operator+(const QByteArray &a1, const QByteArray &a2)
QByteArray operator+(const QByteArray &a1, const char *a2)
QByteArray operator+(const char *a1, const QByteArray &a2)
bool operator<(const QByteArray &lhs, const QByteArray &rhs)
bool operator<(const QByteArray &lhs, const char *const &rhs)
bool operator<(const char *const &lhs, const QByteArray &rhs)
QDataStream &operator<<(QDataStream &out, const QByteArray &ba)
bool operator<=(const QByteArray &lhs, const QByteArray &rhs)
bool operator<=(const QByteArray &lhs, const char *const &rhs)
bool operator<=(const char *const &lhs, const QByteArray &rhs)
bool operator==(const QByteArray &lhs, const QByteArray &rhs)
bool operator==(const QByteArray &lhs, const char *const &rhs)
bool operator==(const char *const &lhs, const QByteArray &rhs)
bool operator>(const QByteArray &lhs, const QByteArray &rhs)
bool operator>(const QByteArray &lhs, const char *const &rhs)
bool operator>(const char *const &lhs, const QByteArray &rhs)
bool operator>=(const QByteArray &lhs, const QByteArray &rhs)
bool operator>=(const QByteArray &lhs, const char *const &rhs)
bool operator>=(const char *const &lhs, const QByteArray &rhs)
QDataStream &operator>>(QDataStream &in, QByteArray &ba)

매크로

상세 설명

QByteArray는 원시 바이트('\0' 포함)와 기존 8비트 '\0'으로 끝나는 문자열을 모두 저장하는 데 사용할 수 있습니다. QByteArray를 사용하는 것이 const char * 를 사용하는 것보다 훨씬 편리합니다. 항상 데이터 뒤에 '\0' 종결자가 오도록 하고, 암시적 공유 (복사 시 쓰기)를 사용하여 메모리 사용량을 줄이고 불필요한 데이터 복사를 방지합니다.

Qt는 QByteArray 외에도 문자열 데이터를 저장하는 QString 클래스도 제공합니다. 대부분의 경우 QString 클래스를 사용하는 것이 좋습니다. 이 클래스는 그 내용을 유니코드 텍스트(UTF-16으로 인코딩)로 이해하며, QByteArray는 저장하는 바이트의 인코딩이나 의미에 대한 가정을 피하는 것을 목표로 합니다(ASCII를 사용하는 몇 가지 레거시 사례 제외). 또한, Qt API 전체에서 QString 가 사용됩니다. QByteArray가 적합한 두 가지 주요 경우는 원시 바이너리 데이터를 저장해야 할 때와 메모리 절약이 중요한 경우(예: 임베디드 Linux용 Qt 사용)입니다.

QByteArray를 초기화하는 한 가지 방법은 생성자에 const char * 을 전달하는 것입니다. 예를 들어, 다음 코드는 "Hello" 데이터를 포함하는 크기 5의 바이트 배열을 생성합니다:

QByteArray ba("Hello");

size()는 5이지만 바이트 배열은 끝에 '\0' 바이트가 추가로 유지되므로 기본 데이터에 대한 포인터를 요청하는 함수(예: data() 호출)가 사용되는 경우 가리키는 데이터가 '\0'으로 종료되도록 보장됩니다.

QByteArray는 const char * 데이터의 심층 복사본을 만들므로 나중에 부작용 없이 수정할 수 있습니다. (예를 들어 성능상의 이유로 데이터의 심층 복사본을 만들고 싶지 않다면 QByteArray::fromRawData()를 대신 사용하세요.)

또 다른 접근 방식은 resize()를 사용하여 배열의 크기를 설정하고 데이터를 바이트 단위로 초기화하는 것입니다. QByteArray는 C++ 배열과 마찬가지로 0 기반 인덱스를 사용합니다. 특정 인덱스 위치의 바이트에 액세스하려면 연산자[]()를 사용할 수 있습니다. 상수가 아닌 바이트 배열에서 연산자[]()는 할당의 왼쪽에서 사용할 수 있는 바이트에 대한 참조를 반환합니다. 예를 들어

QByteArray ba;
ba.resize(5);
ba[0] = 0x3c;
ba[1] = 0xb8;
ba[2] = 0x64;
ba[3] = 0x18;
ba[4] = 0xca;

읽기 전용 액세스의 경우 대체 구문은 at()를 사용하는 것입니다:

for (qsizetype i = 0; i < ba.size(); ++i) {
    if (ba.at(i) >= 'a' && ba.at(i) <= 'f')
        cout << "Found character in range [a-f]" << endl;
}

at()는 딥 카피가 발생하지 않기 때문에 연산자[]()보다 빠를 수 있습니다.

한 번에 많은 바이트를 추출하려면 first(), last() 또는 sliced()를 사용합니다.

QByteArray는 '\0' 바이트를 포함할 수 있습니다. size () 함수는 항상 포함된 '\0' 바이트를 포함하여 전체 배열의 크기를 반환하지만, QByteArray가 추가한 종결 '\0'은 제외합니다. 예를 들어

QByteArray ba1("ca\0r\0t");
ba1.size();                     // Returns 2.
ba1.constData();                // Returns "ca" with terminating \0.

QByteArray ba2("ca\0r\0t", 3);
ba2.size();                     // Returns 3.
ba2.constData();                // Returns "ca\0" with terminating \0.

QByteArray ba3("ca\0r\0t", 4);
ba3.size();                     // Returns 4.
ba3.constData();                // Returns "ca\0r" with terminating \0.

const char cart[] = {'c', 'a', '\0', 'r', '\0', 't'};
QByteArray ba4(QByteArray::fromRawData(cart, 6));
ba4.size();                     // Returns 6.
ba4.constData();                // Returns "ca\0r\0t" without terminating \0.

첫 번째 '\0' 바이트까지 제외한 데이터의 길이를 얻으려면 바이트 배열에서 qstrlen()를 호출합니다.

resize()를 호출한 후 새로 할당된 바이트는 정의되지 않은 값을 갖습니다. 모든 바이트를 특정 값으로 설정하려면 fill()를 호출합니다.

실제 바이트에 대한 포인터를 얻으려면 data() 또는 constData()를 호출합니다. 이러한 함수는 데이터의 시작 부분에 대한 포인터를 반환합니다. 이 포인터는 QByteArray에서 컨스트가 아닌 함수가 호출될 때까지 유효하게 유지됩니다. 또한 데이터는 raw data 에서 생성되지 않는 한 '\0' 바이트로 끝나는 것이 보장됩니다. 이 '\0' 바이트는 QByteArray에서 자동으로 제공되며 size()에서 카운트되지 않습니다.

QByteArray는 바이트 데이터 수정을 위해 append(), prepend(), insert(), replace(), remove()와 같은 기본 함수를 제공합니다. 예를 들어

QByteArray x("and");
x.prepend("rock ");         // x == "rock and"
x.append(" roll");          // x == "rock and roll"
x.replace(5, 3, "&");       // x == "rock & roll"

위의 예에서 replace() 함수의 처음 두 인수는 대체를 시작할 위치와 대체해야 할 바이트 수입니다.

데이터 수정 함수로 인해 배열의 크기가 커지면 QByteArray 객체에 대한 메모리가 재할당될 수 있습니다. 이 경우, 배열의 크기가 크게 증가할 때까지 재할당 없이 추가 확장을 위한 공간을 확보하기 위해 QByteArray는 즉시 필요한 것보다 더 많이 확장됩니다.

insert(), remove() 및 하위 배열을 다른 크기의 배열로 대체할 때 replace() 함수는 배열의 많은 바이트를 메모리에서 적어도 한 위치씩 이동해야 하므로 큰 배열의 경우 속도가 느려질 수 있습니다(선형 시간).

QByteArray를 점진적으로 빌드하고 QByteArray에 포함될 바이트 수를 미리 알고 있는 경우 reserve()를 호출하여 일정량의 메모리를 미리 할당하도록 QByteArray에 요청할 수 있습니다. capacity ()를 호출하여 QByteArray가 실제로 할당된 메모리의 양을 확인할 수도 있습니다.

컨스트가 아닌 연산자와 함수를 사용하면 암시적 공유로 인해 QByteArray가 데이터의 딥 카피를 수행하게 될 수 있다는 점에 유의하세요.

QByteArray는 STL 스타일 이터레이터 (QByteArray::const_iteratorQByteArray::iterator)를 제공합니다. 실제로 이터레이터는 C++ 표준 라이브러리에서 제공하는 일반 알고리즘으로 작업할 때 유용합니다.

참고: 이터레이터와 개별 QByteArray 요소에 대한 참조는 안정성 문제가 발생할 수 있습니다. 이터레이터와 참조는 종종 QByteArray 수정 연산(예: insert() 또는 remove())이 호출될 때 무효화됩니다. 안정성과 이터레이터와 유사한 기능이 필요한 경우, 이터레이터 대신 인덱스를 사용해야 하는데, 인덱스는 QByteArray의 내부 상태에 묶여 있지 않으므로 무효화되지 않습니다.

참고: QByteArray에 대한 이터레이터와 그 안의 개별 바이트에 대한 참조는 QByteArray의 컨스트가 아닌 메서드가 호출될 때 유효성을 유지한다고 신뢰할 수 없습니다. 이러한 이터레이터나 참조를 참조가 아닌 메서드 호출 후에 액세스하면 정의되지 않은 동작이 발생합니다. 이터레이터와 유사한 기능에 대한 안정성이 필요한 경우 이터레이터 대신 인덱스를 사용해야 하는데, 인덱스는 QByteArray의 내부 상태에 묶여 있지 않으므로 무효화되지 않습니다.

특정 바이트 또는 바이트 시퀀스의 모든 항목을 찾으려면 indexOf() 또는 lastIndexOf()를 사용합니다. 전자는 주어진 인덱스 위치에서 시작하여 앞으로 검색하고, 후자는 뒤로 검색합니다. 둘 다 바이트 시퀀스를 찾으면 해당 바이트 시퀀스의 인덱스 위치를 반환하고, 그렇지 않으면 -1을 반환합니다. 예를 들어, 다음은 특정 문자열의 모든 항목을 찾는 일반적인 루프입니다:

QByteArray ba("We must be <b>bold</b>, very <b>bold</b>");
qsizetype j = 0;
while ((j = ba.indexOf("<b>", j)) != -1) {
    cout << "Found <b> tag at index position " << j << endl;
    ++j;
}

단순히 특정 바이트 배열에 특정 바이트 시퀀스가 포함되어 있는지 확인하려면 contains()를 사용합니다. 바이트 배열에서 특정 바이트 시퀀스가 몇 번이나 나타나는지 확인하려면 count()를 사용합니다. 특정 값의 모든 항목을 다른 값으로 바꾸려면 두 개의 매개변수로 구성된 replace() 오버로드 중 하나를 사용합니다.

QByteArray연산자<(), 연산자<=(), 연산자==(), 연산자>=() 등과 같은 오버로드된 연산자를 사용하여 비교할 수 있습니다. 이 비교는 바이트의 숫자 값만을 기반으로 하며 매우 빠르지만 사람이 기대하는 것과는 다릅니다. QString::localeAwareCompare()는 사용자 인터페이스 문자열을 정렬하는 데 더 나은 선택입니다.

역사적인 이유로 QByteArray는 널 바이트 배열과 빈 바이트 배열을 구분합니다. 바이트 배열은 QByteArray의 기본 생성자를 사용하거나 생성자에 (const char *)0을 전달하여 초기화되는 바이트 배열입니다. 바이트 배열은 크기가 0인 모든 바이트 배열입니다. 널 바이트 배열은 항상 비어 있지만, 빈 바이트 배열이 반드시 널인 것은 아닙니다:

QByteArray().isNull();          // returns true
QByteArray().isEmpty();         // returns true

QByteArray("").isNull();        // returns false
QByteArray("").isEmpty();       // returns true

QByteArray("abc").isNull();     // returns false
QByteArray("abc").isEmpty();    // returns false

isNull()를 제외한 모든 함수는 널 바이트 배열을 빈 바이트 배열과 동일하게 취급합니다. 예를 들어 data()는 널 바이트 배열에 대해 '\0' 바이트에 대한 유효한 포인터( nullptr이아님 )를 반환하고 QByteArray()는 QByteArray("")와 동일하게 비교합니다. 항상 isEmpty()를 사용하고 isNull()는 사용하지 않는 것이 좋습니다.

최대 크기 및 메모리 부족 조건

QByteArray의 최대 크기는 아키텍처에 따라 다릅니다. 대부분의 64비트 시스템은 2GB 이상의 메모리를 할당할 수 있으며, 일반적으로 2^63바이트를 제한합니다. 실제 값은 데이터 블록을 관리하는 데 필요한 오버헤드에 따라 달라집니다. 따라서 32비트 플랫폼에서는 오버헤드를 뺀 2GB, 64비트 플랫폼에서는 오버헤드를 뺀 2^63바이트의 최대 크기를 예상할 수 있습니다. QByteArray에 저장할 수 있는 요소의 수는 이 최대 크기입니다.

메모리 할당이 실패하면, 응용 프로그램이 예외 지원으로 컴파일되고 있는 경우 QByteArray는 std::bad_alloc 예외를 던집니다. Qt 컨테이너의 메모리 부족 조건은 Qt가 예외를 던지는 유일한 경우입니다. 예외가 비활성화되어 있으면 메모리 부족은 정의되지 않은 동작입니다.

운영 체제는 할당된 메모리가 많은 응용 프로그램, 특히 크고 연속적인 블록을 보유하는 응용 프로그램에 대해 추가적인 제한을 가할 수 있습니다. 이러한 고려 사항, 이러한 동작의 구성 또는 완화는 QByteArray API의 범위를 벗어납니다.

C 로케일 및 ASCII 함수

QByteArray는 일반적으로 어떤 의미도 가정하지 않고 데이터를 바이트로 처리하며, 의미를 가정하는 경우 C 로케일과 ASCII 인코딩을 사용합니다. 표준 유니코드 인코딩은 QString 에서 지원되며, 다른 인코딩은 QStringEncoderQStringDecoder 를 사용하여 유니코드로 변환할 수 있습니다. 로캘별 텍스트 해석은 QLocale 또는 QString 을 사용합니다.

C 문자열

'\0'으로 끝나는 문자열이라고도 하는 전통적인 C 문자열은 시작점으로 지정되고 그 이후의 첫 번째 '\0' 바이트까지 각 바이트를 암시적으로 포함하지만 그 이후에는 포함하지 않는 바이트 시퀀스입니다. 길이 없이 이러한 포인터를 받아들이는 메서드는 이 바이트 시퀀스로 해석합니다. 이러한 시퀀스는 구조상 '\0' 바이트를 포함할 수 없습니다.

다른 오버로드는 시작 포인터와 바이트 수를 허용하며, '\0' 바이트인지 여부에 관계없이 시작 주소 다음에 주어진 바이트 수를 사용합니다. 포인터만 받는 오버로드가 없는 경우 길이 -1을 전달하면 메서드가 포인터 뒤의 첫 번째 '\0' 바이트의 오프셋을 길이로 사용하게 되므로, 길이 -1은 메서드가 명시적으로 이렇게 한다고 말하는 경우에만 전달해야 합니다(이 경우 일반적으로 기본 인수가 됨).

공백 문자

바이트 배열('\n', '\t', ' ' 등)에서 공백 문자를 제거해야 하는 경우가 자주 발생합니다. QByteArray의 양쪽 끝에서 공백을 제거하려면 trimmed()를 사용합니다. 또한 바이트 배열 내에서 각 공백 문자를 단일 공백 문자로 바꾸려면 simplified()를 사용합니다. 이러한 용도로는 ASCII 공백 문자만 인식됩니다.

숫자 문자열 변환

숫자 데이터 유형과 문자열 표현 간의 변환을 수행하는 함수는 사용자의 로캘 설정에 관계없이 C 로캘에서 수행됩니다. 숫자와 문자열 간의 로캘 인식 변환을 수행하려면 QLocale 을 사용하세요.

문자 대/소문자

QByteArray에서 대문자와 소문자 및 대소문자 독립 비교의 개념은 ASCII로 제한됩니다. ASCII가 아닌 문자는 인코딩에 따라 대소문자가 달라지므로 대소문자가 없는 것으로 취급됩니다. 이는 대소문자를 구분하지 않는 옵션을 지원하거나 인수의 대소문자를 변경하는 함수에 영향을 줍니다. 영향을 받는 함수에는 compare(), isLower(), isUpper(), toLower() 및 toUpper() 등이 있습니다.

QString는 유니코드를 사용하여 문자를 나타내므로 이 문제가 적용되지 않습니다.

QByteArrayView, QString, QBitArray참조하세요 .

멤버 타입 문서

열거형 QByteArray::Base64Option
플래그 QByteArray::Base64Options

이 열거형에는 Base64 인코딩 및 디코딩에 사용할 수 있는 옵션이 포함되어 있습니다. Base64는 RFC 4648에 정의되어 있으며, 다음과 같은 옵션이 있습니다:

Constant설명
QByteArray::Base64Encoding0(기본값) 일반 Base64 알파벳, 간단히 "base64"라고 합니다.
QByteArray::Base64UrlEncoding1URL에 더 친숙하도록 알파벳의 두 문자를 대체하는 대체 알파벳인 "base64url"입니다.
QByteArray::KeepTrailingEquals0(기본값) 인코딩된 데이터 끝에 후행 패딩 등호를 유지하므로 데이터는 항상 4의 크기 배수가 됩니다.
QByteArray::OmitTrailingEquals2인코딩된 데이터 끝에 패딩 등호를 추가하는 것을 생략합니다.
QByteArray::IgnoreBase64DecodingErrors0Base64로 인코딩된 데이터를 디코딩할 때 입력 오류를 무시하고 유효하지 않은 문자를 건너뜁니다. 이 열거형 값은 Qt 5.15에 추가되었습니다.
QByteArray::AbortOnBase64DecodingErrors4Base64로 인코딩된 데이터를 디코딩할 때 첫 번째 디코딩 오류에서 중지합니다. 이 열거형 값은 Qt 5.15에 추가되었습니다.

QByteArray::fromBase64Encoding() 및 QByteArray::fromBase64()는 KeepTrailingEquals 및 OmitTrailingEquals 옵션을 무시합니다. IgnoreBase64DecodingErrors 옵션을 지정하면 후행 등호가 누락되거나 너무 많은 경우 오류 플래그를 지정하지 않습니다. 대신 AbortOnBase64DecodingErrors를 지정하면 입력에 패딩이 없거나 등호의 수가 정확해야 합니다.

Base64Options 유형은 QFlags<Base64Option>에 대한 typedef입니다. 이 유형은 Base64Option 값의 OR 조합을 저장합니다.

QByteArray::const_iterator

이 typedef는 QByteArray 에 대한 STL 스타일 const 이터레이터를 제공합니다.

QByteArray::const_reverse_iteratorQByteArray::iterator 참고하세요.

QByteArray::const_reverse_iterator

이 typedef는 QByteArray 에 대한 STL 스타일의 const 역이터레이터를 제공합니다.

QByteArray::reverse_iteratorQByteArray::const_iterator 참고하세요.

QByteArray::iterator

이 typedef는 QByteArray 에 대한 STL 스타일의 비-const 이터레이터를 제공합니다.

QByteArray::reverse_iteratorQByteArray::const_iterator도 참조하세요 .

QByteArray::reverse_iterator

이 typedef는 QByteArray 에 대한 STL 스타일의 논-컨스트 역이터레이터를 제공합니다.

QByteArray::const_reverse_iteratorQByteArray::iterator도 참조하십시오 .

멤버 함수 문서

[static constexpr noexcept, since 6.8] qsizetype QByteArray::maxSize()

[constexpr noexcept, since 6.8] qsizetype QByteArray::max_size() const

이 함수는 바이트 배열이 이론적으로 보유할 수 있는 최대 요소 수를 반환합니다. 실제로는 시스템에서 사용할 수 있는 메모리 양에 의해 제한되어 이보다 훨씬 적을 수 있습니다.

이 함수는 Qt 6.8에 도입되었습니다.

const char *QByteArray::operator const char *() const

const void *QByteArray::operator const void *() const

참고: 새 코드에서는 constData()를 대신 사용하세요.

바이트 배열에 저장된 데이터에 대한 포인터를 반환합니다. 이 포인터는 배열을 구성하는 바이트에 액세스하는 데 사용할 수 있습니다. 데이터는 '\0'으로 종료됩니다.

분리되지 않고 QByteArray 이 수정되지 않는 한 포인터는 유효하게 유지됩니다.

이 연산자는 주로 const char * 를 받는 함수에 바이트 배열을 전달할 때 유용합니다.

애플리케이션을 컴파일할 때 QT_NO_CAST_FROM_BYTEARRAY 을 정의하여 이 연산자를 비활성화할 수 있습니다.

참고: QByteArray 에는 '\0'을 포함한 모든 바이트 값을 저장할 수 있지만 char * 인수를 받는 대부분의 함수는 데이터가 처음 만나는 '\0'에서 끝나는 것으로 가정합니다.

constData()도 참조하세요 .

QByteArray QByteArray::left(qsizetype len) &&

QByteArray QByteArray::left(qsizetype len) const &

이 바이트 배열의 첫 번째 len 바이트가 포함된 바이트 배열을 반환합니다.

len 이 범위를 벗어날 수 없다는 것을 알고 있다면 새 코드에서 first() 대신 더 빠른 ()을 사용하세요.

lensize()보다 크면 전체 바이트 배열이 반환됩니다.

len 이 0보다 작으면 빈 QByteArray 을 반환합니다.

first(), last(), startsWith(), chopped(), chop() 및 truncate()도 참조하세요 .

QByteArray QByteArray::right(qsizetype len) const &

이 바이트 배열의 마지막 len 바이트가 포함된 바이트 배열을 반환합니다.

len 이 범위를 벗어날 수 없다는 것을 알고 있다면 새 코드에서 last() 대신 더 빠르므로 이 값을 사용하세요.

lensize()보다 크면 전체 바이트 배열이 반환됩니다.

len 이 0보다 작으면 빈 QByteArray 을 반환합니다.

endsWith(), last(), first(), sliced(), chopped(), chop(), truncate(), slice()도 참조하세요 .

QByteArray QByteArray::mid(qsizetype pos, qsizetype len = -1) &&

QByteArray QByteArray::mid(qsizetype pos, qsizetype len = -1) const &

위치 pos 부터 시작하여 이 바이트 배열에서 len 바이트가 포함된 바이트 배열을 반환합니다.

poslen 이 범위를 벗어날 수 없다는 것을 알고 있다면 새 코드에서 sliced()를 사용하는 것이 더 빠릅니다.

len 가 -1(기본값)이거나 pos + len >= size()인 경우 위치 pos 부터 시작하여 바이트 배열의 끝까지 모든 바이트가 포함된 바이트 배열을 반환합니다.

first(), last(), sliced(), chopped(), chop(), truncate() 및 slice()도 참조하세요 .

[since 6.0] QByteArray QByteArray::first(qsizetype n) &&

[since 6.0] QByteArray QByteArray::first(qsizetype n) const &

바이트 배열의 첫 번째 n 바이트를 반환합니다.

참고: n < 0 또는 n > size()인 경우 동작이 정의되지 않습니다.

예제:

QByteArray x("Pineapple");
QByteArray y = x.first(4);
// y == "Pine"

이 함수는 Qt 6.0에 도입되었습니다.

last(), sliced(), startsWith(), chopped(), chop(), truncate() 및 slice()도 참조하세요 .

[since 6.0] QByteArray QByteArray::last(qsizetype n) &&

[since 6.0] QByteArray QByteArray::last(qsizetype n) const &

바이트 배열의 마지막 n 바이트를 반환합니다.

참고: n < 0 또는 n > size()인 경우 동작이 정의되지 않습니다.

예제:

QByteArray x("Pineapple");
QByteArray y = x.last(5);
// y == "apple"

이 함수는 Qt 6.0에 도입되었습니다.

first(), sliced(), endsWith(), chopped(), chop(), truncate() 및 slice()도 참조하세요 .

[since 6.0] QByteArray QByteArray::sliced(qsizetype pos, qsizetype n) &&

[since 6.0] QByteArray QByteArray::sliced(qsizetype pos, qsizetype n) const &

위치 pos 에서 시작하는 이 객체의 n 바이트가 포함된 바이트 배열을 반환합니다.

참고: pos < 0, n < 0 또는 pos + n > size()인 경우 동작이 정의되지 않습니다.

예제:

QByteArray x("Five pineapples");
QByteArray y = x.sliced(5, 4);     // y == "pine"
QByteArray z = x.sliced(5);        // z == "pineapples"

이 함수는 Qt 6.0에 도입되었습니다.

first(), last(), chopped(), chop(), truncate() 및 slice()도 참조하십시오 .

[since 6.0] QByteArray QByteArray::sliced(qsizetype pos) &&

[since 6.0] QByteArray QByteArray::sliced(qsizetype pos) const &

이 함수는 오버로드된 함수입니다.

이 객체의 pos 위치에서 시작하여 이 객체의 끝까지 확장되는 바이트가 포함된 바이트 배열을 반환합니다.

참고: pos < 0 또는 pos > size()인 경우 동작이 정의되지 않습니다.

이 함수는 Qt 6.0에 도입되었습니다.

first(), last(), chopped(), chop(), truncate() 및 slice()도 참조하세요 .

QByteArray QByteArray::chopped(qsizetype len) &&

QByteArray QByteArray::chopped(qsizetype len) const &

이 바이트 배열의 가장 왼쪽에 size() - len 바이트가 포함된 바이트 배열을 반환합니다.

참고: len 가 음수이거나 size()보다 크면 동작이 정의되지 않습니다.

endsWith(), first(), last(), sliced(), chop(), truncate() 및 slice()도 참조하세요 .

[static] QByteArray::FromBase64Result QByteArray::fromBase64Encoding(QByteArray &&base64, QByteArray::Base64Options options = Base64Encoding)

[static] QByteArray::FromBase64Result QByteArray::fromBase64Encoding(const QByteArray &base64, QByteArray::Base64Options options = Base64Encoding)

이 함수는 오버로드된 함수입니다.

options 에 정의된 옵션을 사용하여 Base64 배열 base64 을 디코딩합니다. optionsIgnoreBase64DecodingErrors (기본값)이 포함된 경우 입력의 유효성을 검사하지 않고 입력의 유효하지 않은 문자를 건너뛰고 다음 문자로 디코딩 프로세스를 계속할 수 있도록 합니다. optionsAbortOnBase64DecodingErrors 이 포함되어 있으면 첫 번째 유효하지 않은 문자에서 디코딩이 중지됩니다.

예를 들어

void process(const QByteArray &);

if (auto result = QByteArray::fromBase64Encoding(encodedData))
    process(*result);

Base64로 인코딩된 데이터를 디코딩하는 데 사용되는 알고리즘은 RFC 4648에 정의되어 있습니다.

디코딩된 데이터와 디코딩 성공 여부를 알려주는 플래그가 포함된 QByteArrayFromBase64Result 객체를 반환합니다. AbortOnBase64DecodingErrors 옵션이 전달되었고 입력 데이터가 유효하지 않은 경우, 디코딩된 데이터에 포함된 내용은 지정되지 않습니다.

toBase64()도 참조하세요 .

[constexpr noexcept] QByteArray::QByteArray()

빈 바이트 배열을 구축합니다.

isEmpty()도 참조하세요 .

QByteArray::QByteArray(const char *data, qsizetype size = -1)

data 배열의 첫 번째 size 바이트를 포함하는 바이트 배열을 구축합니다.

data 가 0이면 널 바이트 배열이 구성됩니다.

size 이 음수이면 data 은 '\0'으로 끝나는 문자열을 가리키는 것으로 간주하고 그 길이가 동적으로 결정됩니다.

QByteArray는 문자열 데이터의 딥 카피를 만듭니다.

fromRawData()도 참조하세요 .

QByteArray::QByteArray(qsizetype size, Qt::Initialization)

초기화되지 않은 콘텐츠로 size 크기의 바이트 배열을 구축합니다.

QByteArray::QByteArray(qsizetype size, char ch)

모든 바이트가 ch 로 설정된 크기 size 의 바이트 배열을 구성합니다.

fill()도 참조하세요 .

[noexcept] QByteArray::QByteArray(const QByteArray &other)

other 의 복사본을 생성합니다.

이 작업은 암시적으로 공유되므로 시간이 일정하게 걸립니다. 따라서 함수에서 QByteArray를 반환하는 속도가 매우 빠릅니다. 공유 인스턴스가 수정되면 복사(쓰기 시 복사)되므로 선형적인 시간이 걸립니다.

operator=()도 참조하세요 .

[noexcept] QByteArray::QByteArray(QByteArray &&other)

Move - QByteArray 인스턴스를 생성하여 other 가 가리키던 것과 동일한 객체를 가리키도록 합니다.

[noexcept] QByteArray::~QByteArray()

바이트 배열을 파괴합니다.

QByteArray &QByteArray::append(const QByteArray &ba)

이 바이트 배열의 끝에 ba 바이트 배열을 추가합니다.

예시:

QByteArray x("free");
QByteArray y("dom");
x.append(y);
// x == "freedom"

삽입(size(), ba)과 동일합니다.

참고: QByteArray 은 암시적으로 공유되는 클래스입니다. 따라서 빈 바이트 배열에 추가하면 바이트 배열은 ba 에 있는 데이터를 공유할 뿐입니다. 이 경우 데이터 복사가 수행되지 않으므로 시간이 계속 걸립니다. 공유 인스턴스가 수정되면 복사(쓰기 시 복사)가 이루어지며 시간이 선형적으로 소요됩니다.

추가되는 바이트 배열이 비어 있지 않으면 데이터의 딥 카피가 수행되며 선형적인 시간이 소요됩니다.

QByteArray 은 데이터 끝에 추가 공간을 미리 할당하므로 매번 전체 배열을 재할당하지 않고도 데이터를 늘릴 수 있으므로 일반적으로 매우 빠른(일정한 시간) 함수입니다.

operator+=(), prepend(), insert()도 참조하세요 .

QByteArray &QByteArray::append(QByteArrayView data)

이것은 오버로드된 함수입니다.

이 바이트 배열에 data 을 추가합니다.

QByteArray &QByteArray::append(char ch)

이 함수는 오버로드된 함수입니다.

이 바이트 배열에 ch 바이트를 추가합니다.

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

이 함수는 오버로드된 함수입니다.

'\0'으로 끝나는 문자열 str 을 이 바이트 배열에 추가합니다.

QByteArray &QByteArray::append(const char *str, qsizetype len)

이 함수는 오버로드된 함수입니다.

str 에서 시작하는 첫 번째 len 바이트를 이 바이트 배열에 추가하고 이 바이트 배열에 대한 참조를 반환합니다. 추가되는 바이트에는 '\0' 바이트가 포함될 수 있습니다.

len 가 음수인 경우 str 은 '\0'으로 끝나는 문자열로 간주되며 복사할 길이는 qstrlen()를 사용하여 자동으로 결정됩니다.

len 가 0이거나 str 가 null이면 바이트 배열에 아무것도 추가되지 않습니다. lenstr 보다 길지 않은지 확인하세요.

QByteArray &QByteArray::append(qsizetype count, char ch)

이 함수는 오버로드된 함수입니다.

이 바이트 배열에 ch 바이트의 count 복사본을 추가하고 이 바이트 배열에 대한 참조를 반환합니다.

count 이 음수이거나 0이면 바이트 배열에 아무것도 추가되지 않습니다.

[since 6.6] QByteArray &QByteArray::assign(QByteArrayView v)

이 바이트 배열의 내용을 v 의 복사본으로 바꾸고 이 바이트 배열에 대한 참조를 반환합니다.

이 바이트 배열의 크기는 v 의 크기와 같습니다.

이 함수는 v 의 크기가 이 바이트 배열의 용량을 초과하거나 이 바이트 배열이 공유되는 경우에만 메모리를 할당합니다.

이 함수는 Qt 6.6에 도입되었습니다.

[since 6.6] template <typename InputIterator, QByteArray::if_input_iterator<InputIterator> = true> QByteArray &QByteArray::assign(InputIterator first, InputIterator last)

이 바이트 배열의 내용을 이터레이터 범위 [first, last]의 요소 복사본으로 대체하고 이 바이트 배열에 대한 참조를 반환합니다.

이 바이트 배열의 크기는 범위 [first, last)의 요소 수와 같습니다.

이 함수는 범위의 요소 수가 이 바이트 배열의 용량을 초과하거나 이 바이트 배열이 공유되는 경우에만 메모리를 할당합니다.

참고: 이 함수 오버로드는 InputIteratorLegacyInputIterator의 요구 사항을 충족하는 경우에만 과부하 해결에 참여합니다.

참고: *이것에 대한 이터레이터이거나 [first, last)가 유효한 범위가 아닌 경우 동작이 정의되지 않습니다.

이 함수는 Qt 6.6에 도입되었습니다.

[since 6.6] QByteArray &QByteArray::assign(qsizetype n, char c)

이 바이트 배열의 내용을 cn 복사본으로 바꾸고 이 바이트 배열에 대한 참조를 반환합니다.

이 바이트 배열의 크기는 n 과 같으며, 음수가 아니어야 합니다.

이 함수는 n 가 이 바이트 배열의 용량을 초과하거나 이 바이트 배열이 공유되는 경우에만 메모리를 할당합니다.

이 함수는 Qt 6.6에 도입되었습니다.

fill()도 참조하십시오 .

char QByteArray::at(qsizetype i) const

바이트 배열의 인덱스 위치 i 에 있는 바이트열을 반환합니다.

i 는 바이트 배열에서 유효한 인덱스 위치여야 합니다(즉, 0 <= i < size()).

operator[]()도 참조하세요 .

char &QByteArray::back()

바이트 배열의 마지막 바이트에 대한 참조를 반환합니다. operator[](size() - 1) 와 동일합니다.

이 함수는 STL 호환성을 위해 제공됩니다.

경고: 빈 바이트 배열에서 이 함수를 호출하면 정의되지 않은 동작이 발생합니다.

front(), at() 및 operator[]()도 참조하세요 .

char QByteArray::back() const

바이트 배열의 마지막 바이트를 반환합니다. at(size() - 1) 와 동일합니다.

이 함수는 STL 호환성을 위해 제공됩니다.

경고: 빈 바이트 배열에서 이 함수를 호출하면 정의되지 않은 동작이 발생합니다.

front(), at() 및 operator[]()도 참조하세요 .

QByteArray::iterator QByteArray::begin()

바이트 배열의 첫 번째 바이트를 가리키는 STL 스타일 이터레이터를 반환합니다.

경고: 반환된 이터레이터는 분리되거나 QByteArray 이 수정되면 무효화됩니다.

constBegin() 및 end()도 참조하세요 .

[noexcept] QByteArray::const_iterator QByteArray::begin() const

이 함수는 start()를 오버로드합니다.

qsizetype QByteArray::capacity() const

강제 재할당 없이 바이트 배열에 저장할 수 있는 최대 바이트 수를 반환합니다.

이 함수의 유일한 목적은 QByteArray 의 메모리 사용량을 미세 조정할 수 있는 수단을 제공하는 것입니다. 일반적으로 이 함수를 호출할 필요는 거의 없습니다. 바이트 배열에 몇 바이트가 있는지 알고 싶으면 size()를 호출하세요.

참고: 정적으로 할당된 바이트 배열은 비어 있지 않더라도 0의 용량을 보고합니다.

참고: 할당된 메모리 블록의 여유 공간 위치는 정의되지 않습니다. 즉, 여유 메모리가 항상 초기화된 요소 뒤에 위치한다고 가정해서는 안 됩니다.

reserve() 및 squeeze()도 참조하세요 .

[noexcept] QByteArray::const_iterator QByteArray::cbegin() const

바이트 배열의 첫 번째 바이트를 가리키는 정적 STL 스타일 이터레이터를 반환합니다.

경고: 반환된 이터레이터는 분리되거나 QByteArray 가 수정되면 무효화됩니다.

begin() 및 cend()도 참조하세요 .

[noexcept] QByteArray::const_iterator QByteArray::cend() const

바이트 배열의 마지막 바이트 바로 뒤를 가리키는 상수 STL 스타일 이터레이터를 반환합니다.

경고: 반환된 이터레이터는 분리되거나 QByteArray 가 수정될 때 무효화됩니다.

cbegin() 및 end()도 참조하세요 .

void QByteArray::chop(qsizetype n)

바이트 배열의 끝에서 n 바이트를 제거합니다.

nsize()보다 크면 결과는 빈 바이트 배열이 됩니다.

예시:

QByteArray ba("STARTTLS\r\n");
ba.chop(2);                 // ba == "STARTTLS"

truncate(), resize() 및 first()도 참조하세요 .

void QByteArray::clear()

바이트 배열의 내용을 지우고 널로 만듭니다.

resize() 및 isNull()도 참조하세요 .

[noexcept, since 6.0] int QByteArray::compare(QByteArrayView bv, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

QByteArrayQByteArrayView bv 보다 앞, 같은 위치 또는 뒤에 정렬되는지 여부에 따라 0보다 작거나 같거나 큰 정수를 반환합니다. 비교는 대소문자 구분( cs)에 따라 수행됩니다.

이 함수는 Qt 6.0에 도입되었습니다.

operator==Character Case도 참조하십시오 .

[noexcept] QByteArray::const_iterator QByteArray::constBegin() const

바이트 배열의 첫 번째 바이트를 가리키는 정적 STL 스타일 이터레이터를 반환합니다.

경고: 반환된 이터레이터는 분리되거나 QByteArray 가 수정되면 무효화됩니다.

begin() 및 constEnd()도 참조하세요 .

[noexcept] const char *QByteArray::constData() const

바이트 배열에 저장된 const 데이터에 대한 포인터를 반환합니다. 이 포인터는 배열을 구성하는 바이트에 액세스하는 데 사용할 수 있습니다. QByteArray 객체가 원시 데이터로 생성되지 않은 경우 데이터는 '\0'으로 종료됩니다.

분리되지 않고 QByteArray 이 수정되지 않는 한 포인터는 유효하게 유지됩니다.

이 함수는 주로 const char * 를 받는 함수에 바이트 배열을 전달할 때 유용합니다.

참고: QByteArray 는 '\0'을 포함한 모든 바이트 값을 저장할 수 있지만 char * 인수를 받는 대부분의 함수는 데이터가 처음 만나는 '\0'에서 끝나는 것으로 가정합니다.

data(), operator[]() 및 fromRawData()도 참조하세요 .

[noexcept] QByteArray::const_iterator QByteArray::constEnd() const

바이트 배열의 마지막 바이트 바로 뒤를 가리키는 상수 STL 스타일 이터레이터를 반환합니다.

경고: 반환된 이터레이터는 분리되거나 QByteArray 가 수정될 때 무효화됩니다.

constBegin() 및 end()도 참조하세요 .

[since 6.0] bool QByteArray::contains(QByteArrayView bv) const

이 바이트 배열에 bv 에서 조회한 바이트 시퀀스가 포함되어 있으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

이 함수는 Qt 6.0에 도입되었습니다.

indexOf() 및 count()도 참조하십시오 .

bool QByteArray::contains(char ch) const

이 함수는 오버로드된 함수입니다.

바이트 배열에 ch 바이트가 포함된 경우 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.

[since 6.0] qsizetype QByteArray::count(QByteArrayView bv) const

이 바이트 배열에서 bv 에서 본 바이트 시퀀스의 (잠재적으로 중복될 수 있는) 발생 횟수를 반환합니다.

이 함수는 Qt 6.0에 도입되었습니다.

contains() 및 indexOf()도 참조하십시오 .

qsizetype QByteArray::count(char ch) const

이 함수는 오버로드된 함수입니다.

바이트 배열에서 ch 바이트의 발생 횟수를 반환합니다.

contains() 및 indexOf()도 참조하세요 .

[noexcept] QByteArray::const_reverse_iterator QByteArray::crbegin() const

바이트 배열의 첫 번째 바이트를 역순으로 가리키는 상수 STL 스타일 역방향 이터레이터를 반환합니다.

경고: 반환된 이터레이터는 분리되거나 QByteArray 가 수정되면 무효화됩니다.

begin(), rbegin() 및 rend()도 참조하세요 .

[noexcept] QByteArray::const_reverse_iterator QByteArray::crend() const

바이트 배열의 마지막 바이트 바로 뒤를 역순으로 가리키는 상수 STL 스타일 역방향 이터레이터를 반환합니다.

경고: 반환된 이터레이터는 분리되거나 QByteArray 가 수정되면 무효화됩니다.

end(), rend() 및 rbegin()도 참조하세요 .

char *QByteArray::data()

바이트 배열에 저장된 데이터에 대한 포인터를 반환합니다. 이 포인터는 배열을 구성하는 바이트에 액세스하고 수정하는 데 사용할 수 있습니다. 데이터는 '\0'으로 끝나는데, 즉 반환된 포인터 다음에 액세스할 수 있는 바이트 수는 '\0' 종결자를 포함하여 size() + 1입니다.

예시:

QByteArray ba("Hello world");
char *data = ba.data();
while (*data) {
    cout << "[" << *data << "]" << endl;
    ++data;
}

분리되지 않고 QByteArray 이 수정되지 않는 한 포인터는 유효한 상태로 유지됩니다.

읽기 전용 액세스의 경우 constData()는 딥 카피가 발생하지 않으므로 더 빠릅니다.

이 함수는 주로 const char * 를 받는 함수에 바이트 배열을 전달할 때 유용합니다.

다음 예제는 data()가 반환한 char*의 복사본을 만들지만 끝에 있는 '\0'에 바이트가 할당되지 않아 힙을 손상시키고 충돌을 일으킵니다:

QString tmp = "test";
QByteArray text = tmp.toLocal8Bit();
char *data = new char[text.size()];
strcpy(data, text.data());
delete [] data;

이것은 올바른 양의 공간을 할당합니다:

QString tmp = "test";
QByteArray text = tmp.toLocal8Bit();
char *data = new char[text.size() + 1];
strcpy(data, text.data());
delete [] data;

참고: QByteArray 는 '\0'을 포함한 모든 바이트 값을 저장할 수 있지만 char * 인수를 받는 대부분의 함수는 데이터가 처음 만나는 '\0'에서 끝나는 것으로 가정합니다.

constData() 및 operator[]()도 참조하세요 .

[noexcept] const char *QByteArray::data() const

과부하가 걸린 기능입니다.

QByteArray::iterator QByteArray::end()

바이트 배열의 마지막 바이트 바로 뒤를 가리키는 STL 스타일 이터레이터를 반환합니다.

경고: 반환된 이터레이터는 분리되거나 QByteArray 가 수정되면 무효화됩니다.

begin() 및 constEnd()도 참조하세요 .

[noexcept] QByteArray::const_iterator QByteArray::end() const

이 함수는 end()를 오버로드합니다.

[since 6.0] bool QByteArray::endsWith(QByteArrayView bv) const

이 바이트 배열이 bv 에서 본 바이트 시퀀스로 끝나면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

예제:

QByteArray url("http://qt-project.org/doc/qt-5.0/qtdoc/index.html");
if (url.endsWith(".html"))
    ...

이 함수는 Qt 6.0에 도입되었습니다.

startsWith() 및 last()도 참조하십시오 .

bool QByteArray::endsWith(char ch) const

이 함수는 오버로드된 함수입니다.

이 바이트 배열이 바이트 ch 로 끝나면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.

[since 6.1] QByteArray::iterator QByteArray::erase(QByteArray::const_iterator first, QByteArray::const_iterator last)

바이트 배열에서 반개방 범위의 문자[ first, last ]를 제거합니다. 지우기 전에 last 가 참조한 문자에 대한 이터레이터를 반환합니다.

이 함수는 Qt 6.1에 도입되었습니다.

[since 6.5] QByteArray::iterator QByteArray::erase(QByteArray::const_iterator it)

이 함수는 오버로드된 함수입니다.

it 로 표시된 문자를 바이트 배열에서 제거합니다. 지워진 문자 바로 뒤에 있는 문자에 대한 이터레이터를 반환합니다.

QByteArray ba = "abcdefg";
auto it = ba.erase(ba.cbegin()); // ba is now "bcdefg" and it points to "b"

이 함수는 Qt 6.5에 도입되었습니다.

QByteArray &QByteArray::fill(char ch, qsizetype size = -1)

바이트 배열의 모든 바이트를 ch 로 설정합니다. size 이 -1(기본값)과 다른 경우, 바이트 배열의 크기가 미리 size 크기로 조정됩니다.

예시:

QByteArray ba("Istambul");
ba.fill('o');
// ba == "oooooooo"

ba.fill('X', 2);
// ba == "XX"

resize()도 참조하세요 .

[static] QByteArray QByteArray::fromBase64(const QByteArray &base64, QByteArray::Base64Options options = Base64Encoding)

options 에 정의된 옵션을 사용하여 Base64 배열 base64 의 디코딩된 사본을 반환합니다. optionsIgnoreBase64DecodingErrors (기본값)이 포함된 경우 입력의 유효성을 검사하지 않고 입력의 유효하지 않은 문자를 건너뛰고 다음 문자로 디코딩 프로세스를 계속할 수 있습니다. optionsAbortOnBase64DecodingErrors 이 포함되어 있으면 첫 번째 유효하지 않은 문자에서 디코딩이 중지됩니다.

예를 들어

QByteArray text = QByteArray::fromBase64("UXQgaXMgZ3JlYXQh");
text.data();            // returns "Qt is great!"

QByteArray::fromBase64("PHA+SGVsbG8/PC9wPg==", QByteArray::Base64Encoding); // returns "<p>Hello?</p>"
QByteArray::fromBase64("PHA-SGVsbG8_PC9wPg==", QByteArray::Base64UrlEncoding); // returns "<p>Hello?</p>"

Base64로 인코딩된 데이터를 디코딩하는 데 사용되는 알고리즘은 RFC 4648에 정의되어 있습니다.

디코딩된 데이터를 반환하거나 AbortOnBase64DecodingErrors 옵션이 전달되었고 입력 데이터가 유효하지 않은 경우 빈 바이트 배열을 반환합니다.

참고: fromBase64Encoding() 함수는 새 코드에 사용할 것을 권장합니다.

toBase64() 및 fromBase64Encoding()도 참조하세요 .

[static] QByteArray QByteArray::fromCFData(CFDataRef data)

CFData data 의 복사본을 포함하는 새 QByteArray 를 생성합니다.

fromRawCFData(), fromRawData(), toRawCFData() 및 toCFData()도 참조하십시오 .

[static, since 6.5] QByteArray QByteArray::fromEcmaUint8Array(emscripten::val uint8array)

Uint8Array uint8array 의 복사본을 포함하는 새로운 QByteArray 을 생성합니다.

이 함수는 C++ 코드에서 주소 지정이 불가능한 JavaScript 데이터 버퍼의 데이터를 QByteArray 가 소유한 힙 메모리로 전송합니다. 이 함수가 반환되고 복사본이 만들어지면 Uint8Array는 해제될 수 있습니다.

uint8array 인수는 글로벌 자바스크립트 변수에서 가져온 Uint8Array 객체를 참조하는 emscripten::val이어야 합니다:

emscripten::val uint8array = emscripten::val::global("g_uint8array");
QByteArray byteArray = QByteArray::fromEcmaUint8Array(uint8array);

이 함수는 Uint8Array의 크기가 최대 용량인 QByteArray 을 초과하거나 uint8array 인수가 Uint8Array 유형이 아닌 경우 null QByteArray 을 반환합니다.

이 함수는 Qt 6.5에 도입되었습니다.

toEcmaUint8Array()도 참조하십시오 .

[static] QByteArray QByteArray::fromHex(const QByteArray &hexEncoded)

16진수로 인코딩된 배열의 디코딩된 복사본을 반환합니다 hexEncoded. 입력의 유효성을 검사하지 않으며, 입력의 유효하지 않은 문자는 건너뛰고 다음 문자로 디코딩 프로세스를 계속할 수 있습니다.

예를 들어

QByteArray text = QByteArray::fromHex("517420697320677265617421");
text.data();            // returns "Qt is great!"

toHex()도 참조하세요 .

[static] QByteArray QByteArray::fromNSData(const NSData *data)

NSData data 의 복사본을 포함하는 새 QByteArray 를 생성합니다.

fromRawNSData(), fromRawData(), toNSData(), toRawNSData()도 참조하세요 .

[static] QByteArray QByteArray::fromPercentEncoding(const QByteArray &input, char percent = '%')

URI/URL 스타일 퍼센트 인코딩에서 input 을 디코딩합니다.

디코딩된 텍스트가 포함된 바이트 배열을 반환합니다. percent 매개변수를 사용하면 '%'가 아닌 다른 문자(예: '_' 또는 '=')를 이스케이프 문자로 사용할 수 있습니다. 입력과 동일합니다.percentDecoded(퍼센트).

예를 들어

QByteArray text = QByteArray::fromPercentEncoding("Qt%20is%20great%33");qDebug("%s", text.data());      // reports "Qt is great!"

percentDecoded()도 참조하세요 .

[static] QByteArray QByteArray::fromRawCFData(CFDataRef data)

CFData data 의 바이트를 사용하는 QByteArray 을 생성합니다.

data 의 바이트는 복사되지 않습니다.

호출자는 이 QByteArray 객체가 존재하는 한 CFData가 삭제되거나 수정되지 않음을 보장합니다.

fromCFData(), fromRawData(), toRawCFData() 및 toCFData()도 참조하세요 .

[static] QByteArray QByteArray::fromRawData(const char *data, qsizetype size)

data 배열의 첫 번째 size 바이트를 사용하는 QByteArray 을 생성합니다. 바이트는 복사되지 않습니다. QByteArray 에는 data 포인터가 포함됩니다. 호출자는 이 QByteArray 및 수정되지 않은 복사본이 존재하는 한 data 이 삭제되거나 수정되지 않음을 보장합니다. 즉, QByteArray암시적으로 공유되는 클래스이고 이 함수가 반환하는 인스턴스에는 data 포인터가 포함되어 있으므로 호출자는 반환된 QByteArray 및 복사본이 존재하는 한 data 을 삭제하거나 직접 수정해서는 안 됩니다. 그러나 QByteArraydata 의 소유권을 가지지 않으므로 QByteArray 소멸자는 data 을 참조하는 마지막 QByteArray 이 소멸되더라도 원시 data 을 절대 삭제하지 않습니다.

이후에 반환된 QByteArray 또는 그로부터 만들어진 복사본의 내용을 수정하려고 하면 수정하기 전에 data 배열의 심층 복사본을 생성합니다. 이렇게 하면 원시 data 배열 자체는 QByteArray 에 의해 수정되지 않습니다.

다음은 원시 데이터를 QByteArray 으로 복사하지 않고 메모리의 원시 데이터에서 QDataStream 을 사용하여 데이터를 읽는 방법의 예입니다:

 static const char mydata[] = {
    '\x00', '\x00', '\x03', '\x84', '\x78', '\x9c', '\x3b', '\x76',
    '\xec', '\x18', '\xc3', '\x31', '\x0a', '\xf1', '\xcc', '\x99',
    ...
    '\x6d', '\x5b'
};

QByteArray data = QByteArray::fromRawData(mydata, sizeof(mydata));
QDataStream in(&data, QIODevice::ReadOnly);
...

경고: 원시 데이터에 size 위치에 '\0' 바이트가 포함되지 않는 한, fromRawData()로 생성된 바이트 배열은 '\0'으로 끝나는 것이 아닙니다. QDataStream 또는 indexOf()와 같은 함수에서는 문제가 되지 않지만, '\0'으로 끝날 것으로 예상되는 const char * 을 받는 함수에 바이트 배열을 전달하면 실패합니다.

setRawData(), data() 및 constData()도 참조하세요 .

[static] QByteArray QByteArray::fromRawNSData(const NSData *data)

NSData data 의 바이트를 사용하는 QByteArray 을 구축합니다.

data 의 바이트는 복사되지 않습니다.

호출자는 이 QByteArray 객체가 존재하는 한 NSData가 삭제되거나 수정되지 않음을 보장합니다.

fromNSData(), fromRawData(), toRawNSData() 및 toNSData()도 참조하세요 .

[static] QByteArray QByteArray::fromStdString(const std::string &str)

str 문자열의 복사본을 QByteArray 로 반환합니다.

toStdString() 및 QString::fromStdString()도 참조하세요 .

char &QByteArray::front()

바이트 배열의 첫 번째 바이트에 대한 참조를 반환합니다. operator[](0) 와 동일합니다.

이 함수는 STL 호환성을 위해 제공됩니다.

경고: 빈 바이트 배열에서 이 함수를 호출하면 정의되지 않은 동작이 발생합니다.

back(), at() 및 operator[]()도 참조하세요 .

char QByteArray::front() const

바이트 배열의 첫 번째 바이트를 반환합니다. at(0) 와 동일합니다.

이 함수는 STL 호환성을 위해 제공됩니다.

경고: 빈 바이트 배열에서 이 함수를 호출하면 정의되지 않은 동작이 발생합니다.

back(), at() 및 operator[]()도 참조하세요 .

[since 6.0] qsizetype QByteArray::indexOf(QByteArrayView bv, qsizetype from = 0) const

이 바이트 배열에서 bv 에서 본 바이트 시퀀스의 첫 번째 발생 시작 부분의 인덱스 위치를 반환하며, 인덱스 위치 from 에서부터 앞으로 검색합니다. 일치하는 항목이 없으면 -1을 반환합니다.

예제:

QByteArray x("sticky question");
QByteArrayView y("sti");
x.indexOf(y);               // returns 0
x.indexOf(y, 1);            // returns 10
x.indexOf(y, 10);           // returns 10
x.indexOf(y, 11);           // returns -1

이 함수는 Qt 6.0에 도입되었습니다.

lastIndexOf(), contains() 및 count()도 참조하십시오 .

qsizetype QByteArray::indexOf(char ch, qsizetype from = 0) const

이 함수는 오버로드된 함수입니다.

이 바이트 배열에서 ch 바이트가 처음 발생하는 시작 부분의 인덱스 위치를 반환하며, 인덱스 위치 from 에서부터 앞으로 검색합니다. 일치하는 항목이 없으면 -1을 반환합니다.

예시:

QByteArray ba("ABCBA");
ba.indexOf("B");            // returns 1
ba.indexOf("B", 1);         // returns 1
ba.indexOf("B", 2);         // returns 3
ba.indexOf("X");            // returns -1

lastIndexOf() 및 contains()도 참조하세요 .

[since 6.0] QByteArray &QByteArray::insert(qsizetype i, QByteArrayView data)

인덱스 위치 idata 를 삽입하고 이 바이트 배열에 대한 참조를 반환합니다.

예시:

QByteArray ba("Meal");
ba.insert(1, QByteArrayView("ontr"));
// ba == "Montreal"

큰 바이트 배열의 경우, 이 작업은 인덱스 i 이상의 모든 바이트를 메모리에서 최소 한 위치 이상 이동해야 하므로 느려질 수 있습니다(선형 시간).

이 배열은 삽입을 수용하기 위해 커집니다. i 이 배열의 끝을 넘어가면, 배열은 먼저 공백 문자로 확장되어 i 에 도달합니다.

이 함수는 Qt 6.0에 도입되었습니다.

append(), prepend(), replace() 및 remove()도 참조하십시오 .

QByteArray &QByteArray::insert(qsizetype i, const QByteArray &data)

인덱스 위치 idata 를 삽입하고 이 바이트 배열에 대한 참조를 반환합니다.

이 배열은 삽입을 수용하기 위해 커집니다. i 이 배열의 끝을 넘어가면 배열이 먼저 공백 문자로 확장되어 i 에 도달합니다.

append(), prepend(), replace() 및 remove()도 참조하세요 .

QByteArray &QByteArray::insert(qsizetype i, const char *s)

인덱스 위치 is 를 삽입하고 이 바이트 배열에 대한 참조를 반환합니다.

이 배열은 삽입을 수용하기 위해 커집니다. i 이 배열의 끝을 넘어가면 먼저 공백 문자로 배열을 확장하여 i 에 도달합니다.

이 함수는 다음과 같습니다. insert(i, QByteArrayView(s))

append(), prepend(), replace() 및 remove()도 참조하세요 .

QByteArray &QByteArray::insert(qsizetype i, char ch)

이 함수는 과부하된 함수입니다.

바이트 배열의 인덱스 위치 i 에 바이트 ch 를 삽입합니다.

이 배열은 삽입을 수용하기 위해 커집니다. i 이 배열 끝을 넘어가면 배열이 먼저 공백 문자로 확장되어 i 에 도달합니다.

QByteArray &QByteArray::insert(qsizetype i, const char *data, qsizetype len)

이 함수는 오버로드된 함수입니다.

data 에서 시작하는 len 바이트를 바이트 배열의 위치 i 에 삽입합니다.

이 배열은 삽입을 수용하기 위해 커집니다. i 이 배열의 끝을 넘어가면 배열은 먼저 공백 문자로 확장되어 i 에 도달합니다.

QByteArray &QByteArray::insert(qsizetype i, qsizetype count, char ch)

이 함수는 오버로드된 함수입니다.

바이트 배열의 인덱스 위치 i 에 바이트 ch 의 사본 count 을 삽입합니다.

이 배열은 삽입을 수용하기 위해 커집니다. i 이 배열의 끝을 넘어가면 배열은 먼저 공백 문자로 확장되어 i 에 도달합니다.

[noexcept] bool QByteArray::isEmpty() const

바이트 배열의 크기가 0이면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

예제:

QByteArray().isEmpty();         // returns true
QByteArray("").isEmpty();       // returns true
QByteArray("abc").isEmpty();    // returns false

size()도 참조하세요 .

bool QByteArray::isLower() const

이 바이트 배열이 소문자인 경우, 즉 toLower() 접기와 동일한 경우 true 을 반환합니다.

이는 바이트 배열에 소문자만 포함되어 있다는 뜻이 아니라 ASCII 대문자가 포함되어 있지 않다는 의미입니다.

isUpper() 및 toLower()도 참조하세요 .

[noexcept] bool QByteArray::isNull() const

이 바이트 배열이 null이면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

예제:

QByteArray().isNull();          // returns true
QByteArray("").isNull();        // returns false
QByteArray("abc").isNull();     // returns false

Qt는 역사적인 이유로 널 바이트 배열과 빈 바이트 배열을 구분합니다. 대부분의 응용 프로그램에서 중요한 것은 바이트 배열에 데이터가 포함되어 있는지 여부이며, 이는 isEmpty()를 사용하여 확인할 수 있습니다.

isEmpty()도 참조하세요 .

bool QByteArray::isUpper() const

이 바이트 배열이 대문자인 경우, 즉 toUpper() 접기와 동일한 경우 true 을 반환합니다.

이는 바이트 배열에 대문자만 포함되어 있다는 뜻이 아니라 ASCII 소문자가 포함되어 있지 않다는 의미입니다.

isLower() 및 toUpper()도 참조하세요 .

[noexcept, since 6.3] bool QByteArray::isValidUtf8() const

이 바이트 배열에 유효한 UTF-8 인코딩된 데이터가 포함되어 있으면 true, 그렇지 않으면 false 을 반환합니다.

이 함수는 Qt 6.3에 도입되었습니다.

[since 6.0] qsizetype QByteArray::lastIndexOf(QByteArrayView bv, qsizetype from) const

이 바이트 배열에서 bv 에서 본 바이트 시퀀스의 마지막 발생 시작 부분의 인덱스 위치를 반환하며, 인덱스 위치 from 부터 역방향으로 검색합니다.

from 이 -1이면 마지막 문자에서 검색을 시작하고, -2이면 마지막 문자 다음에서 검색하는 식으로 검색합니다.

일치하는 항목이 없으면 -1을 반환합니다.

예:

QByteArray x("crazy azimuths");
QByteArrayView 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인 bv 을 검색하는 경우, 일반적으로 -1 은 바이트 배열의 끝에서 검색하는 것으로 간주되지만, 데이터 끝의 일치 항목은 마지막 문자 뒤에 있으므로 검색에서 제외됩니다(음수 from). 이러한 마지막 빈 일치 항목을 포함하려면 from 에 양수 값을 지정하거나 from 매개변수를 완전히 생략하세요.

이 함수는 Qt 6.0에 도입되었습니다.

indexOf(), contains() 및 count()도 참조하세요 .

[since 6.2] qsizetype QByteArray::lastIndexOf(QByteArrayView bv) const

이 함수는 오버로드된 함수입니다.

이 바이트 배열에서 bv 에서 마지막으로 조회한 바이트 시퀀스의 시작 부분의 인덱스 위치를 바이트 배열의 끝에서 역순으로 검색하여 반환합니다. 일치하는 항목이 없으면 -1을 반환합니다.

예제:

QByteArray x("crazy azimuths");
QByteArrayView 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

이 함수는 Qt 6.2에 도입되었습니다.

indexOf(), contains() 및 count()도 참조하세요 .

qsizetype QByteArray::lastIndexOf(char ch, qsizetype from = -1) const

이 함수는 오버로드된 함수입니다.

인덱스 위치 from 에서 역방향으로 검색하여 이 바이트 배열에서 마지막으로 발생한 바이트 ch 의 시작 부분의 인덱스 위치를 반환합니다. from 이 -1(기본값)이면 마지막 바이트(인덱스 size() - 1)에서 검색이 시작됩니다. 일치하는 항목이 없으면 -1을 반환합니다.

예시:

QByteArray ba("ABCBA");
ba.lastIndexOf("B");        // returns 3
ba.lastIndexOf("B", 3);     // returns 3
ba.lastIndexOf("B", 2);     // returns 1
ba.lastIndexOf("X");        // returns -1

indexOf() 및 contains()도 참조하세요 .

QByteArray QByteArray::leftJustified(qsizetype width, char fill = ' ', bool truncate = false) const

fill 바이트가 추가된 이 바이트 배열을 포함하는 width 크기의 바이트 배열을 반환합니다.

truncate 이 거짓이고 바이트 배열의 size()이 width 보다 크면 반환되는 바이트 배열은 이 바이트 배열의 복사본입니다.

truncate 이 참이고 바이트 배열의 size()이 width 보다 크면 위치 width 이후의 바이트 배열 사본에서 바이트가 제거되고 사본이 반환됩니다.

예시:

QByteArray x("apple");
QByteArray y = x.leftJustified(8, '.');   // y == "apple..."

rightJustified()도 참조하세요 .

[noexcept] qsizetype QByteArray::length() const

size()와 동일합니다.

[static] QByteArray QByteArray::number(int n, int base = 10)

정숫값 n 을 텍스트로 나타내는 바이트 배열을 반환합니다.

지정된 base (기본값은 10)을 사용하여 n 을 나타내는 문자열이 포함된 바이트 배열을 반환합니다. 베이스 2부터 36까지 지원되며, 9를 초과하는 숫자는 문자를 사용합니다(예: A는 10, B는 11 등).

예시:

int n = 63;
QByteArray::number(n);              // returns "63"
QByteArray::number(n, 16);          // returns "3f"
QByteArray::number(n, 16).toUpper();  // returns "3F"

참고: 숫자의 형식은 지역화되지 않으며 사용자의 로캘에 관계없이 기본 C 로캘이 사용됩니다. 숫자와 문자열 간에 로캘 인식 변환을 수행하려면 QLocale 을 사용합니다.

setNum() 및 toInt()도 참조하세요 .

[static] QByteArray QByteArray::number(long n, int base = 10)

이 함수는 과부하된 함수입니다.

toLong()도 참조하세요 .

[static] QByteArray QByteArray::number(qlonglong n, int base = 10)

이 함수는 과부하된 함수입니다.

toLongLong()도 참조하세요 .

[static] QByteArray QByteArray::number(qulonglong n, int base = 10)

이 함수는 과부하된 함수입니다.

toULongLong()도 참조하세요 .

[static] QByteArray QByteArray::number(uint n, int base = 10)

이 함수는 과부하된 함수입니다.

toUInt()도 참조하세요 .

[static] QByteArray QByteArray::number(ulong n, int base = 10)

이 함수는 과부하된 함수입니다.

toULong()도 참조하세요 .

[static] QByteArray QByteArray::number(double n, char format = 'g', int precision = 6)

이 함수는 오버로드된 함수입니다.

부동 소수점 숫자 n 를 텍스트로 나타내는 바이트 배열을 반환합니다.

n 를 나타내는 문자열과 formatprecision, QString::number 와 동일한 의미의 문자열(double, char, int)이 포함된 바이트 배열을 반환합니다. 예를 들어

QByteArray ba = QByteArray::number(12.3456, 'E', 3);
// ba == 1.235E+01

toDouble() 및 QLocale::FloatingPointPrecisionOption도 참조하세요 .

[since 6.4] QByteArray QByteArray::percentDecoded(char percent = '%') const

URI/URL 스타일의 퍼센트 인코딩을 디코딩합니다.

디코딩된 텍스트가 포함된 바이트 배열을 반환합니다. percent 매개변수를 사용하면 이스케이프 문자로 '%'가 아닌 다른 문자(예: '_' 또는 '=')를 사용할 수 있습니다.

예를 들어

QByteArray encoded("Qt%20is%20great%33");
QByteArray decoded = encoded.percentDecoded(); // Set to "Qt is great!"

참고: 유효하지 않은 입력(예: 유효한 16진수가 아닌 "%G5" 시퀀스가 포함된 문자열)이 주어지면 출력도 유효하지 않습니다. 예를 들어 "%G5" 시퀀스는 'W'로 디코딩될 수 있습니다.

이 함수는 Qt 6.4에 도입되었습니다.

toPercentEncoding() 및 QUrl::fromPercentEncoding()도 참조하십시오 .

QByteArray &QByteArray::prepend(QByteArrayView ba)

바이트 배열 보기 ba 를 이 바이트 배열에 추가하고 이 바이트 배열에 대한 참조를 반환합니다.

이 작업은 일반적으로 매우 빠릅니다(일정한 시간). QByteArray 데이터의 시작 부분에 추가 공간을 미리 할당하므로 매번 전체 배열을 재할당하지 않고도 늘릴 수 있기 때문입니다.

예시:

QByteArray x("ship");
QByteArray y("air");
x.prepend(y);
// x == "airship"

삽입(0, ba)과 동일합니다.

append() 및 insert()도 참조하세요 .

QByteArray &QByteArray::prepend(char ch)

이 함수는 과부하된 함수입니다.

이 바이트 배열에 ch 바이트를 추가합니다.

QByteArray &QByteArray::prepend(const QByteArray &ba)

이 함수는 오버로드된 함수입니다.

ba 를 이 바이트 배열에 추가합니다.

QByteArray &QByteArray::prepend(const char *str)

이 함수는 오버로드된 함수입니다.

'\0'으로 끝나는 문자열 str 을 이 바이트 배열에 추가합니다.

QByteArray &QByteArray::prepend(const char *str, qsizetype len)

이 함수는 오버로드된 함수입니다.

str 에서 시작하는 len 바이트를 이 바이트 배열에 추가합니다. 추가되는 바이트에는 '\0' 바이트가 포함될 수 있습니다.

QByteArray &QByteArray::prepend(qsizetype count, char ch)

이 함수는 과부하된 함수입니다.

이 바이트 배열에 ch 바이트의 count 복사본을 추가합니다.

void QByteArray::push_back(const QByteArray &other)

이 함수는 STL 호환성을 위해 제공됩니다. append(other)와 동일합니다.

[since 6.0] void QByteArray::push_back(QByteArrayView str)

이 함수는 오버로드된 함수입니다.

append(str)와 동일합니다.

이 함수는 Qt 6.0에 도입되었습니다.

void QByteArray::push_back(char ch)

이 함수는 오버로드된 함수입니다.

append(ch)와 동일합니다.

void QByteArray::push_back(const char *str)

이 함수는 오버로드된 함수입니다.

append(str)와 동일합니다.

void QByteArray::push_front(const QByteArray &other)

이 함수는 STL 호환성을 위해 제공됩니다. prepend(other)와 동일합니다.

[since 6.0] void QByteArray::push_front(QByteArrayView str)

이 함수는 오버로드된 함수입니다.

prepend(str)와 동일합니다.

이 함수는 Qt 6.0에 도입되었습니다.

void QByteArray::push_front(char ch)

이 함수는 오버로드된 함수입니다.

prepend(ch)와 동일합니다.

void QByteArray::push_front(const char *str)

이 함수는 오버로드된 함수입니다.

prepend(str)와 동일합니다.

QByteArray::reverse_iterator QByteArray::rbegin()

바이트 배열의 첫 번째 바이트를 역순으로 가리키는 STL 스타일의 역이터레이터를 반환합니다.

경고: 반환된 이터레이터는 분리되거나 QByteArray 가 수정되면 무효화됩니다.

begin(), crbegin() 및 rend()도 참조하세요 .

[noexcept] QByteArray::const_reverse_iterator QByteArray::rbegin() const

과부하가 걸린 기능입니다.

QByteArray &QByteArray::remove(qsizetype pos, qsizetype len)

인덱스 위치 pos 에서 시작하여 배열에서 len 바이트를 제거하고 배열에 대한 참조를 반환합니다.

pos 이 범위를 벗어나면 아무 일도 일어나지 않습니다. pos 이 유효하지만 pos + len 이 배열 크기보다 큰 경우 배열은 pos 위치에서 잘립니다.

예시:

QByteArray ba("Montreal");
ba.remove(1, 4);
// ba == "Meal"

요소를 제거해도 배열의 용량은 유지되며 할당된 메모리의 양은 줄어들지 않습니다. 추가 용량을 없애고 최대한 많은 메모리를 확보하려면 배열의 크기를 마지막으로 변경한 후 squeeze()를 호출하세요.

insert(), replace() 및 squeeze()도 참조하세요 .

[since 6.5] QByteArray &QByteArray::removeAt(qsizetype pos)

인덱스에서 문자를 제거합니다 pos. pos 이 범위를 벗어난 경우(예: pos >= size()) 이 함수는 아무 일도 하지 않습니다.

이 함수는 Qt 6.5에 도입되었습니다.

remove()도 참조하십시오 .

[since 6.5] QByteArray &QByteArray::removeFirst()

이 바이트 배열의 첫 번째 문자를 제거합니다. 바이트 배열이 비어 있으면 이 함수는 아무 작업도 수행하지 않습니다.

이 함수는 Qt 6.5에 도입되었습니다.

remove()도 참조하십시오 .

[since 6.1] template <typename Predicate> QByteArray &QByteArray::removeIf(Predicate pred)

pred 술어가 참을 반환하는 모든 바이트를 바이트 배열에서 제거합니다. 바이트 배열에 대한 참조를 반환합니다.

이 함수는 Qt 6.1에 도입되었습니다.

remove()도 참조하십시오 .

[since 6.5] QByteArray &QByteArray::removeLast()

이 바이트 배열의 마지막 문자를 제거합니다. 바이트 배열이 비어 있으면 이 함수는 아무 작업도 수행하지 않습니다.

이 함수는 Qt 6.5에 도입되었습니다.

remove()도 참조하십시오 .

QByteArray::reverse_iterator QByteArray::rend()

바이트 배열의 마지막 바이트 바로 뒤를 역순으로 가리키는 STL 스타일의 역방향 이터레이터를 반환합니다.

경고: 반환된 이터레이터는 분리되거나 QByteArray 가 수정되면 무효화됩니다.

end(), crend() 및 rbegin()도 참조하세요 .

[noexcept] QByteArray::const_reverse_iterator QByteArray::rend() const

과부하가 걸린 기능입니다.

QByteArray QByteArray::repeated(qsizetype times) const

지정된 개수만큼 반복되는 times 의 바이트 배열 사본을 반환합니다.

times 이 1보다 작으면 빈 바이트 배열이 반환됩니다.

예시:

QByteArray ba("ab");
ba.repeated(4);             // returns "abababab"

QByteArray &QByteArray::replace(qsizetype pos, qsizetype len, QByteArrayView after)

인덱스 위치 poslen 바이트를 바이트 배열 after 로 바꾸고 이 바이트 배열에 대한 참조를 반환합니다.

예제:

QByteArray x("Say yes!");
QByteArray y("no");
x.replace(4, 3, y);
// x == "Say no!"

insert() 및 remove()도 참조하세요 .

[since 6.0] QByteArray &QByteArray::replace(QByteArrayView before, QByteArrayView after)

이 함수는 오버로드된 함수입니다.

바이트 배열 before 의 모든 항목을 바이트 배열 after 로 바꿉니다.

예제:

QByteArray ba("colour behaviour flavour neighbour");
ba.replace(QByteArray("ou"), QByteArray("o"));
// ba == "color behavior flavor neighbor"

이 함수는 Qt 6.0에 도입되었습니다.

QByteArray &QByteArray::replace(char before, QByteArrayView after)

이 함수는 오버로드된 함수입니다.

바이트 before 의 모든 항목을 바이트 배열 after 로 바꿉니다.

QByteArray &QByteArray::replace(char before, char after)

이 함수는 오버로드된 함수입니다.

바이트 before 의 모든 발생을 바이트 after 로 바꿉니다.

QByteArray &QByteArray::replace(const char *before, qsizetype bsize, const char *after, qsizetype asize)

이 함수는 오버로드된 함수입니다.

before 에서 시작하는 bsize 바이트의 모든 항목을 asize 에서 시작하는 after 바이트의 모든 항목으로 바꿉니다. 문자열의 크기는 bsizeasize 으로 지정되므로 '\0' 바이트를 포함할 수 있으며 '\0'으로 끝날 필요는 없습니다.

QByteArray &QByteArray::replace(qsizetype pos, qsizetype len, const char *after, qsizetype alen)

이 함수는 오버로드된 함수입니다.

인덱스 위치 poslen 바이트를 위치 after 에서 시작하는 alen 바이트로 바꿉니다. 삽입되는 바이트에는 '\0' 바이트가 포함될 수 있습니다.

void QByteArray::reserve(qsizetype size)

최소 size 바이트에 대한 메모리 할당을 시도합니다.

바이트 배열의 크기를 미리 알고 있다면 이 함수를 호출할 수 있으며 resize()를 자주 호출하면 더 나은 성능을 얻을 수 있습니다.

얼마나 많은 공간이 필요한지 확실하지 않은 경우 일반적으로 size 와 같은 상한을 사용하거나 엄격한 상한이 이보다 훨씬 클 경우 가장 가능성이 높은 예상 크기를 사용하는 것이 좋습니다. size 이 과소 추정치인 경우 예약된 크기를 초과하면 배열이 필요에 따라 커지므로 최상의 과대 추정치보다 더 큰 할당을 초래할 수 있으며 이를 트리거하는 작업 속도가 느려질 수 있습니다.

경고: reserve()는 메모리를 예약하지만 바이트 배열의 크기는 변경하지 않습니다. 바이트 배열의 끝을 넘어 데이터에 액세스하는 것은 정의되지 않은 동작입니다. 현재 배열의 끝을 넘어 메모리에 액세스해야 하는 경우 resize()를 사용하세요.

이 함수의 유일한 목적은 QByteArray 의 메모리 사용량을 미세 조정할 수 있는 수단을 제공하는 것입니다. 일반적으로 이 함수를 호출할 필요는 거의 없습니다.

squeeze() 및 capacity()도 참조하세요 .

void QByteArray::resize(qsizetype size)

바이트 배열의 크기를 size 바이트로 설정합니다.

size 이 현재 크기보다 크면 바이트 배열이 확장되어 size 바이트가 되고 끝에 여분의 바이트가 추가됩니다. 새 바이트는 초기화되지 않습니다.

size 이 현재 크기보다 작으면 size 위치 이후의 바이트는 바이트 배열에서 제외됩니다.

참고: resize()는 필요한 경우 용량을 늘리지만 용량을 줄이지는 않습니다. 초과 용량을 줄이려면 squeeze()를 사용합니다.

size(), truncate() 및 squeeze()도 참조하세요 .

[since 6.4] void QByteArray::resize(qsizetype newSize, char c)

바이트 배열의 크기를 newSize 바이트로 설정합니다.

newSize 이 현재 크기보다 크면 바이트 배열이 확장되어 newSize 바이트가 되고 끝에 여분의 바이트가 추가됩니다. 새 바이트는 c 으로 초기화됩니다.

newSize 이 현재 크기보다 작으면 newSize 위치 이후의 바이트는 바이트 배열에서 제외됩니다.

참고: resize()는 필요한 경우 용량을 늘리지만 용량을 줄이지는 않습니다. 초과 용량을 줄이려면 squeeze()를 사용합니다.

이 함수는 Qt 6.4에 도입되었습니다.

size(), truncate() 및 squeeze()도 참조하세요 .

[since 6.8] void QByteArray::resizeForOverwrite(qsizetype size)

바이트 배열의 크기를 size 바이트로 조정합니다. 바이트 배열의 크기가 커지면 새 바이트가 초기화되지 않습니다.

동작은 resize(size) 와 동일합니다.

이 함수는 Qt 6.8에 도입되었습니다.

resize()도 참조하십시오 .

QByteArray QByteArray::rightJustified(qsizetype width, char fill = ' ', bool truncate = false) const

fill 바이트 다음에 이 바이트 배열이 포함된 width 크기의 바이트 배열을 반환합니다.

truncate 이 거짓이고 바이트 배열의 크기가 width 보다 크면 반환되는 바이트 배열은 이 바이트 배열의 복사본입니다.

truncate 이 참이고 바이트 배열의 크기가 width 보다 크면 결과 바이트 배열은 width 위치에서 잘립니다.

예시:

QByteArray x("apple");
QByteArray y = x.rightJustified(8, '.');    // y == "...apple"

leftJustified()도 참조하세요 .

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

n 정수를 텍스트로 표현합니다.

이 바이트 배열을 기본값 base (기본값 10)의 n 을 나타내는 문자열로 설정하고 이 바이트 배열에 대한 참조를 반환합니다. 베이스 2부터 36까지 지원되며, 9를 초과하는 숫자는 문자를 사용합니다(A는 10, B는 11 등).

예시:

QByteArray ba;
int n = 63;
ba.setNum(n);           // ba == "63"
ba.setNum(n, 16);       // ba == "3f"

참고: 숫자의 형식은 지역화되지 않으며 사용자의 로캘에 관계없이 기본 C 로캘이 사용됩니다. 숫자와 문자열 간의 로캘 인식 변환을 수행하려면 QLocale 을 사용합니다.

number() 및 toInt()도 참조하세요 .

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

이 함수는 과부하된 함수입니다.

toLong()도 참조하세요 .

QByteArray &QByteArray::setNum(qlonglong n, int base = 10)

이 함수는 과부하된 함수입니다.

toLongLong()도 참조하세요 .

QByteArray &QByteArray::setNum(qulonglong n, int base = 10)

이 함수는 과부하된 함수입니다.

toULongLong()도 참조하세요 .

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

이 함수는 과부하된 함수입니다.

toShort()도 참조하세요 .

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

이 함수는 과부하된 함수입니다.

toUInt()도 참조하세요 .

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

이 함수는 과부하된 함수입니다.

toULong()도 참조하세요 .

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

이 함수는 과부하된 함수입니다.

toUShort()도 참조하세요 .

QByteArray &QByteArray::setNum(double n, char format = 'g', int precision = 6)

이것은 오버로드된 함수입니다.

부동 소수점 숫자 n 를 텍스트로 표현합니다.

이 바이트 배열을 formatprecision ( QString::number(double, char, int)와 동일한 의미)와 함께 n 를 나타내는 문자열로 설정하고 이 바이트 배열에 대한 참조를 반환합니다.

toDouble() 및 QLocale::FloatingPointPrecisionOption도 참조하세요 .

QByteArray &QByteArray::setNum(float n, char format = 'g', int precision = 6)

이것은 오버로드된 함수입니다.

부동 소수점 숫자 n 를 텍스트로 표현합니다.

이 바이트 배열을 formatprecision ( QString::number(double, char, int)와 동일한 의미)와 함께 n 를 나타내는 문자열로 설정하고 이 바이트 배열에 대한 참조를 반환합니다.

toFloat()도 참조하세요 .

QByteArray &QByteArray::setRawData(const char *data, qsizetype size)

data 배열의 첫 번째 size 바이트를 사용하도록 QByteArray 을 재설정합니다. 바이트는 복사되지 않습니다. QByteArray 에는 data 포인터가 포함됩니다. 호출자는 이 QByteArray 및 수정되지 않은 복사본이 존재하는 한 data 이 삭제되거나 수정되지 않음을 보장합니다.

이 함수는 fromRawData() 대신 기존 QByteArray 객체를 재사용하여 메모리 재할당을 절약하는 데 사용할 수 있습니다.

fromRawData(), data() 및 constData()도 참조하세요 .

void QByteArray::shrink_to_fit()

이 기능은 STL 호환성을 위해 제공됩니다. squeeze ()와 동일합니다.

QByteArray QByteArray::simplified() const

시작과 끝에서 공백 문자가 제거되고 내부 공백 문자의 각 시퀀스가 단일 공백으로 대체된 이 바이트 배열의 복사본을 반환합니다.

간격 문자는 표준 C++ isspace() 함수가 C 로캘에서 true 을 반환하는 문자로, ASCII 문자 표 '\t', 줄 바꿈 '\n', 캐리지 리턴 '\r', 세로 표 '\v', 폼 피드 '\f', 공백 ' ' 등이 해당됩니다.

예시:

QByteArray ba("  lots\t of\nwhitespace\r\n ");
ba = ba.simplified();
// ba == "lots of whitespace";

trimmed(), QChar::SpecialCharacter, Spacing Characters참조하세요 .

[noexcept] qsizetype QByteArray::size() const

이 바이트 배열의 바이트 수를 반환합니다.

바이트 배열의 마지막 바이트는 size() - 1 위치에 있습니다. 또한 QByteArray 는 size()의 바이트가 항상 '\0'이므로 data() 및 constData()의 반환 값을 '\0'으로 끝나는 문자열을 예상하는 함수에 대한 인수로 사용할 수 있습니다. QByteArray 객체가 '\0'으로 끝나는 바이트가 포함되지 않은 raw data 에서 생성된 경우, QByteArray딥 카피가 생성되지 않는 한 자동으로 해당 바이트가 추가되지 않습니다.

예시:

QByteArray ba("Hello");
qsizetype n = ba.size();    // n == 5
ba.data()[0];               // returns 'H'
ba.data()[4];               // returns 'o'
ba.data()[5];               // returns '\0'

isEmpty() 및 resize()도 참조하세요 .

[since 6.8] QByteArray &QByteArray::slice(qsizetype pos, qsizetype n)

이 바이트 배열을 pos 위치에서 시작하여 n 바이트까지 확장하도록 수정하고 이 바이트 배열에 대한 참조를 반환합니다.

참고: pos < 0, n < 0 또는 pos + n > size()인 경우 동작이 정의되지 않습니다.

예제:

QByteArray x = "Five pineapples"_ba;
x.slice(5);     // x == "pineapples"
x.slice(4, 3);  // x == "app"

이 함수는 Qt 6.8에 도입되었습니다.

sliced(), first(), last(), chopped(), chop() 및 truncate()도 참조하세요 .

[since 6.8] QByteArray &QByteArray::slice(qsizetype pos)

이 함수는 오버로드된 함수입니다.

이 바이트 배열을 pos 위치에서 시작하여 끝까지 확장되도록 수정하고 이 바이트 배열에 대한 참조를 반환합니다.

참고: pos < 0 또는 pos > size()인 경우 동작이 정의되지 않습니다.

이 함수는 Qt 6.8에 도입되었습니다.

sliced(), first(), last(), chopped(), chop() 및 truncate()도 참조하십시오 .

QList<QByteArray> QByteArray::split(char sep) const

sep 이 발생하는 모든 곳에서 바이트 배열을 하위 배열로 분할하고 해당 배열의 목록을 반환합니다. sep 이 바이트 배열의 어느 곳과도 일치하지 않으면 split()은 이 바이트 배열을 포함하는 단일 엘리먼트 목록을 반환합니다.

void QByteArray::squeeze()

배열의 데이터를 저장하는 데 필요하지 않은 메모리를 해제합니다.

이 함수의 유일한 목적은 QByteArray 의 메모리 사용량을 미세 조정할 수 있는 수단을 제공하는 것입니다. 일반적으로 이 함수를 호출할 필요는 거의 없습니다.

reserve() 및 capacity()도 참조하세요 .

[since 6.0] bool QByteArray::startsWith(QByteArrayView bv) const

이 바이트 배열이 bv 에서 본 바이트 시퀀스로 시작하면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

예제:

QByteArray url("ftp://ftp.qt-project.org/");
if (url.startsWith("ftp:"))
    ...

이 함수는 Qt 6.0에 도입되었습니다.

endsWith() 및 first()도 참조하십시오 .

bool QByteArray::startsWith(char ch) const

이 함수는 오버로드된 함수입니다.

이 바이트 배열이 바이트 ch 로 시작하면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.

[noexcept] void QByteArray::swap(QByteArray &other)

이 바이트 배열을 other 로 바꿉니다. 이 작업은 매우 빠르며 실패하지 않습니다.

QByteArray QByteArray::toBase64(QByteArray::Base64Options options = Base64Encoding) const

옵션을 사용하여 인코딩된 바이트 배열의 복사본을 반환합니다 options.

QByteArray text("Qt is great!");
text.toBase64();        // returns "UXQgaXMgZ3JlYXQh"

QByteArray text("<p>Hello?</p>");
text.toBase64(QByteArray::Base64Encoding | QByteArray::OmitTrailingEquals);      // returns "PHA+SGVsbG8/PC9wPg"
text.toBase64(QByteArray::Base64Encoding);                                       // returns "PHA+SGVsbG8/PC9wPg=="
text.toBase64(QByteArray::Base64UrlEncoding);                                    // returns "PHA-SGVsbG8_PC9wPg=="
text.toBase64(QByteArray::Base64UrlEncoding | QByteArray::OmitTrailingEquals);   // returns "PHA-SGVsbG8_PC9wPg"

Base64로 인코딩된 데이터를 인코딩하는 데 사용되는 알고리즘은 RFC 4648에 정의되어 있습니다.

fromBase64()도 참조하세요 .

CFDataRef QByteArray::toCFData() const

QByteArray 에서 CFData를 생성합니다.

호출자는 CFData 객체를 소유하며 이를 릴리스할 책임이 있습니다.

toRawCFData(), fromCFData(), fromRawCFData() 및 fromRawData()도 참조하세요 .

double QByteArray::toDouble(bool *ok = nullptr) const

double 값으로 변환된 바이트 배열을 반환합니다.

변환이 오버플로되면 무한대를 반환하고, 다른 이유(예: 언더플로)로 변환에 실패하면 0.0을 반환합니다.

oknullptr 이 아닌 경우 실패는 *okfalse 로 설정하여 보고하고 성공은 *oktrue 로 설정하여 보고합니다.

QByteArray string("1234.56");
bool ok;
double a = string.toDouble(&ok);   // a == 1234.56, ok == true

string = "1234.56 Volt";
a = str.toDouble(&ok);             // a == 0, ok == false

경고: QByteArray 콘텐츠에는 더하기/빼기 기호, 과학적 표기법에 사용되는 문자 e, 소수점 이하를 포함한 유효한 숫자 문자만 포함할 수 있습니다. 단위 또는 추가 문자를 포함하면 변환 오류가 발생합니다.

참고: 숫자 변환은 사용자의 로캘에 관계없이 기본 C 로캘에서 수행됩니다. 숫자와 문자열 간의 로캘 인식 변환을 수행하려면 QLocale 을 사용하세요.

이 함수는 선행 및 후행 공백을 무시합니다.

number()도 참조하세요 .

[since 6.5] emscripten::val QByteArray::toEcmaUint8Array()

QByteArray 에서 Uint8Array를 생성합니다.

이 함수는 QByteArray 가 소유한 힙 메모리에서 자바스크립트 데이터 버퍼로 데이터를 전송합니다. 이 함수는 ArrayBuffer에 할당 및 복사한 후 해당 버퍼에 Uint8Array 뷰를 반환합니다.

JavaScript 객체는 데이터의 복사본을 소유하며, 이 QByteArray 은 복사 후 안전하게 삭제할 수 있습니다.

QByteArray byteArray = "test";
emscripten::val uint8array = byteArray.toEcmaUint8Array();

이 함수는 Qt 6.5에 도입되었습니다.

toEcmaUint8Array()도 참조하세요 .

float QByteArray::toFloat(bool *ok = nullptr) const

float 값으로 변환된 바이트 배열을 반환합니다.

변환이 오버플로되면 무한대를 반환하고, 다른 이유(예: 언더플로)로 변환에 실패하면 0.0을 반환합니다.

oknullptr 이 아닌 경우 실패는 *okfalse 로 설정하여 보고하고 성공은 *oktrue 로 설정하여 보고합니다.

QByteArray string("1234.56");
bool ok;
float a = string.toFloat(&ok);    // a == 1234.56, ok == true

string = "1234.56 Volt";
a = str.toFloat(&ok);              // a == 0, ok == false

경고: QByteArray 콘텐츠에는 더하기/빼기 기호, 과학적 표기법에 사용되는 문자 e, 소수점 이하를 포함한 유효한 숫자 문자만 포함할 수 있습니다. 단위 또는 추가 문자를 포함하면 변환 오류가 발생합니다.

참고: 숫자 변환은 사용자의 로캘에 관계없이 기본 C 로캘에서 수행됩니다. 숫자와 문자열 간의 로캘 인식 변환을 수행하려면 QLocale 을 사용하세요.

이 함수는 선행 및 후행 공백을 무시합니다.

number()도 참조하세요 .

QByteArray QByteArray::toHex(char separator = '\0') const

바이트 배열의 16진법으로 인코딩된 사본을 반환합니다.

16진수 인코딩은 숫자 0-9와 문자 a-f를 사용합니다.

separator 이 '\0'이 아닌 경우 16진수 바이트 사이에 구분 문자가 삽입됩니다.

예:

QByteArray macAddress = QByteArray::fromHex("123456abcdef");
macAddress.toHex(':'); // returns "12:34:56:ab:cd:ef"
macAddress.toHex(0);   // returns "123456abcdef"

fromHex()도 참조하세요 .

int QByteArray::toInt(bool *ok = nullptr, int base = 10) const

기본값은 10인 base 을 사용하여 int 으로 변환된 바이트 배열을 반환합니다. 베이스 0과 2~36이 지원되며 9를 초과하는 숫자는 문자를 사용합니다(예: A는 10, B는 11 등).

base 이 0인 경우 기저는 다음 규칙에 따라 자동으로 결정됩니다: 바이트 배열이 "0x"로 시작하면 16진수(베이스 16)로, "0b"로 시작하면 2진수(베이스 2)로, "0"으로 시작하면 8진수(베이스 8)로, 그렇지 않으면 10진수로 가정합니다.

변환에 실패하면 0을 반환합니다.

oknullptr 이 아닌 경우 실패는 *okfalse 로 설정하여 보고하고, 성공은 *oktrue 로 설정하여 보고합니다.

QByteArray str("FF");
bool ok;
int hex = str.toInt(&ok, 16);     // hex == 255, ok == true
int dec = str.toInt(&ok, 10);     // dec == 0, ok == false

참고: 숫자 변환은 사용자의 로캘에 관계없이 기본 C 로캘에서 수행됩니다. 숫자와 문자열 간의 로캘 인식 변환을 수행하려면 QLocale 을 사용하세요.

참고: "0b" 접두사에 대한 지원은 Qt 6.4에서 추가되었습니다.

number()도 참조하세요 .

long QByteArray::toLong(bool *ok = nullptr, int base = 10) const

기본값은 10인 기본값 base 을 사용하여 long int로 변환된 바이트 배열을 반환합니다. 베이스 0과 2~36이 지원되며, 9를 초과하는 자릿수는 문자를 사용합니다(A는 10, B는 11 등).

base 이 0이면 다음 규칙에 따라 기저가 자동으로 결정됩니다: 바이트 배열이 "0x"로 시작하면 16진수(베이스 16)로, "0b"로 시작하면 2진수(베이스 2)로, "0"으로 시작하면 8진수(베이스 8)로, 그렇지 않으면 10진수로 가정합니다.

변환에 실패하면 0을 반환합니다.

oknullptr 이 아닌 경우 실패는 *okfalse 로 설정하여 보고하고, 성공은 *oktrue 로 설정하여 보고합니다.

QByteArray str("FF");
bool ok;
long hex = str.toLong(&ok, 16);   // hex == 255, ok == true
long dec = str.toLong(&ok, 10);   // dec == 0, ok == false

참고: 숫자 변환은 사용자의 로캘에 관계없이 기본 C 로캘에서 수행됩니다. 숫자와 문자열 간의 로캘 인식 변환을 수행하려면 QLocale 을 사용하세요.

참고: "0b" 접두사에 대한 지원은 Qt 6.4에서 추가되었습니다.

number()도 참조하세요 .

qlonglong QByteArray::toLongLong(bool *ok = nullptr, int base = 10) const

기본값은 10인 base 을 사용하여 long long 으로 변환된 바이트 배열을 반환합니다. 베이스 0과 2~36이 지원되며 9를 초과하는 숫자는 문자를 사용합니다(예: A는 10, B는 11 등).

base 이 0인 경우 기저는 다음 규칙에 따라 자동으로 결정됩니다: 바이트 배열이 "0x"로 시작하면 16진수(베이스 16)로, "0b"로 시작하면 2진수(베이스 2)로, "0"으로 시작하면 8진수(베이스 8)로, 그렇지 않으면 10진수로 가정합니다.

변환에 실패하면 0을 반환합니다.

oknullptr 이 아닌 경우 실패는 *okfalse 로 설정하여 보고하고, 성공은 *oktrue 로 설정하여 보고합니다.

참고: 숫자 변환은 사용자의 로캘에 관계없이 기본 C 로캘에서 수행됩니다. 숫자와 문자열 간의 로캘 인식 변환을 수행하려면 QLocale 을 사용하세요.

참고: "0b" 접두사에 대한 지원은 Qt 6.4에서 추가되었습니다.

number()도 참조하세요 .

QByteArray QByteArray::toLower() const

각 ASCII 대문자가 소문자로 변환된 바이트 배열의 복사본을 반환합니다.

예시:

QByteArray x("Qt by THE QT COMPANY");
QByteArray y = x.toLower();
// y == "qt by the qt company"

isLower(), toUpper() 및 Character Case참조하세요 .

NSData *QByteArray::toNSData() const

QByteArray 에서 NSData를 생성합니다.

NSData 객체는 자동 릴리스됩니다.

fromNSData(), fromRawNSData(), fromRawData() 및 toRawNSData()도 참조하세요 .

QByteArray QByteArray::toPercentEncoding(const QByteArray &exclude = QByteArray(), const QByteArray &include = QByteArray(), char percent = '%') const

이 바이트 배열의 URI/URL 스타일 퍼센트 인코딩 사본을 반환합니다. percent 매개변수를 사용하면 기본 '%' 문자를 다른 문자로 재정의할 수 있습니다.

기본적으로 이 함수는 다음 중 하나가 아닌 모든 바이트를 인코딩합니다:

알파벳("a"~"z", "A"~"Z") / 숫자(0~9) / "-" / "." / "_" / "~"

바이트가 인코딩되지 않도록 하려면 exclude 으로 전달하세요. 바이트가 인코딩되도록 하려면 include 으로 전달하세요. percent 문자는 항상 인코딩됩니다.

예제:

QByteArray text = "{비린내 나는 문자열?"}";QByteArray ba = text.toPercentEncoding("{}", "s");qDebug("%s", ba.constData());
// "{a fi%73hy %73tring%3F}"를 출력

16진수 인코딩은 숫자 0-9와 대문자 A-F를 사용합니다.

fromPercentEncoding() 및 QUrl::toPercentEncoding()도 참조하세요 .

CFDataRef QByteArray::toRawCFData() const

QByteArray 의 바이트를 사용하는 CFData를 생성합니다.

QByteArray 의 바이트는 복사되지 않습니다.

호출자는 이 CFData 객체가 존재하는 한 QByteArray 이 삭제되거나 수정되지 않음을 보장합니다.

toCFData(), fromRawCFData(), fromCFData() 및 fromRawData()도 참조하세요 .

NSData *QByteArray::toRawNSData() const

QByteArray 의 바이트를 사용하는 NSData를 구축합니다.

QByteArray 의 바이트는 복사되지 않습니다.

호출자는 이 NSData 객체가 존재하는 한 QByteArray 이 삭제되거나 수정되지 않음을 보장합니다.

fromRawNSData(), fromNSData(), fromRawData() 및 toNSData()도 참조하세요 .

short QByteArray::toShort(bool *ok = nullptr, int base = 10) const

기본값은 10인 base 을 사용하여 short 으로 변환된 바이트 배열을 반환합니다. 베이스 0과 2~36이 지원되며 9를 초과하는 숫자는 문자를 사용합니다(예: A는 10, B는 11 등).

base 이 0인 경우 기저는 다음 규칙에 따라 자동으로 결정됩니다: 바이트 배열이 "0x"로 시작하면 16진수(베이스 16)로, "0b"로 시작하면 2진수(베이스 2)로, "0"으로 시작하면 8진수(베이스 8)로, 그렇지 않으면 10진수로 가정합니다.

변환에 실패하면 0을 반환합니다.

oknullptr 이 아닌 경우 실패는 *okfalse 로 설정하여 보고하고, 성공은 *oktrue 로 설정하여 보고합니다.

참고: 숫자 변환은 사용자의 로캘에 관계없이 기본 C 로캘에서 수행됩니다. 숫자와 문자열 간의 로캘 인식 변환을 수행하려면 QLocale 을 사용하세요.

참고: "0b" 접두사에 대한 지원은 Qt 6.4에서 추가되었습니다.

number()도 참조하세요 .

std::string QByteArray::toStdString() const

QByteArray 에 포함된 데이터가 포함된 std::string 객체를 반환합니다.

이 연산자는 주로 QByteArray 를 std::string 객체를 받는 함수에 전달할 때 유용합니다.

fromStdString() 및 QString::toStdString()도 참조하세요 .

uint QByteArray::toUInt(bool *ok = nullptr, int base = 10) const

기본값은 10인 base 을 사용하여 unsigned int 으로 변환된 바이트 배열을 반환합니다. 베이스 0과 2~36이 지원되며 9를 초과하는 숫자는 문자를 사용합니다(예: A는 10, B는 11 등).

base 이 0인 경우 기저는 다음 규칙에 따라 자동으로 결정됩니다: 바이트 배열이 "0x"로 시작하면 16진수(베이스 16)로, "0b"로 시작하면 2진수(베이스 2)로, "0"으로 시작하면 8진수(베이스 8)로, 그렇지 않으면 10진수로 가정합니다.

변환에 실패하면 0을 반환합니다.

oknullptr 이 아닌 경우 실패는 *okfalse 로 설정하여 보고하고, 성공은 *oktrue 로 설정하여 보고합니다.

참고: 숫자 변환은 사용자의 로캘에 관계없이 기본 C 로캘에서 수행됩니다. 숫자와 문자열 간의 로캘 인식 변환을 수행하려면 QLocale 을 사용하세요.

참고: "0b" 접두사에 대한 지원은 Qt 6.4에서 추가되었습니다.

number()도 참조하세요 .

ulong QByteArray::toULong(bool *ok = nullptr, int base = 10) const

기본값은 10인 base 을 사용하여 unsigned long int 으로 변환된 바이트 배열을 반환합니다. 베이스 0과 2~36이 지원되며 9를 초과하는 숫자는 문자를 사용합니다(예: A는 10, B는 11 등).

base 이 0인 경우 기저는 다음 규칙에 따라 자동으로 결정됩니다: 바이트 배열이 "0x"로 시작하면 16진수(베이스 16)로, "0b"로 시작하면 2진수(베이스 2)로, "0"으로 시작하면 8진수(베이스 8)로, 그렇지 않으면 10진수로 가정합니다.

변환에 실패하면 0을 반환합니다.

oknullptr 이 아닌 경우 실패는 *okfalse 로 설정하여 보고하고, 성공은 *oktrue 로 설정하여 보고합니다.

참고: 숫자 변환은 사용자의 로캘에 관계없이 기본 C 로캘에서 수행됩니다. 숫자와 문자열 간의 로캘 인식 변환을 수행하려면 QLocale 을 사용하세요.

참고: "0b" 접두사에 대한 지원은 Qt 6.4에서 추가되었습니다.

number()도 참조하세요 .

qulonglong QByteArray::toULongLong(bool *ok = nullptr, int base = 10) const

기본값은 10인 base 을 사용하여 unsigned long long 으로 변환된 바이트 배열을 반환합니다. 베이스 0과 2~36이 지원되며 9를 초과하는 숫자는 문자를 사용합니다(예: A는 10, B는 11 등).

base 이 0인 경우 기저는 다음 규칙에 따라 자동으로 결정됩니다: 바이트 배열이 "0x"로 시작하면 16진수(베이스 16)로, "0b"로 시작하면 2진수(베이스 2)로, "0"으로 시작하면 8진수(베이스 8)로, 그렇지 않으면 10진수로 가정합니다.

변환에 실패하면 0을 반환합니다.

oknullptr 이 아닌 경우 실패는 *okfalse 로 설정하여 보고하고, 성공은 *oktrue 로 설정하여 보고합니다.

참고: 숫자 변환은 사용자의 로캘에 관계없이 기본 C 로캘에서 수행됩니다. 숫자와 문자열 간의 로캘 인식 변환을 수행하려면 QLocale 을 사용하세요.

참고: "0b" 접두사에 대한 지원은 Qt 6.4에서 추가되었습니다.

number()도 참조하세요 .

ushort QByteArray::toUShort(bool *ok = nullptr, int base = 10) const

기본값은 10인 base 을 사용하여 unsigned short 으로 변환된 바이트 배열을 반환합니다. 베이스 0과 2~36이 지원되며 9를 초과하는 숫자는 문자를 사용합니다(예: A는 10, B는 11 등).

base 이 0인 경우 기저는 다음 규칙에 따라 자동으로 결정됩니다: 바이트 배열이 "0x"로 시작하면 16진수(베이스 16)로, "0b"로 시작하면 2진수(베이스 2)로, "0"으로 시작하면 8진수(베이스 8)로, 그렇지 않으면 10진수로 가정합니다.

변환에 실패하면 0을 반환합니다.

oknullptr 이 아닌 경우 실패는 *okfalse 로 설정하여 보고하고, 성공은 *oktrue 로 설정하여 보고합니다.

참고: 숫자 변환은 사용자의 로캘에 관계없이 기본 C 로캘에서 수행됩니다. 숫자와 문자열 간의 로캘 인식 변환을 수행하려면 QLocale 을 사용하세요.

참고: "0b" 접두사에 대한 지원은 Qt 6.4에서 추가되었습니다.

number()도 참조하세요 .

QByteArray QByteArray::toUpper() const

각 ASCII 소문자를 대문자로 변환한 바이트 배열의 복사본을 반환합니다.

예시:

QByteArray x("Qt by THE QT COMPANY");
QByteArray y = x.toUpper();
// y == "QT BY THE QT COMPANY"

isUpper(), toLower() 및 Character Case참조하세요 .

QByteArray QByteArray::trimmed() const

시작과 끝에서 공백 문자가 제거된 이 바이트 배열의 복사본을 반환합니다.

간격 문자는 표준 C++ isspace() 함수가 C 로캘에서 true 을 반환하는 문자로, ASCII 문자 표 '\t', 줄 바꿈 '\n', 캐리지 리턴 '\r', 세로 표 '\v', 폼 피드 '\f', 공백 ' ' 등이 해당됩니다.

예:

QByteArray ba("  lots\t of\nwhitespace\r\n ");
ba = ba.trimmed();
// ba == "lots\t of\nwhitespace";

simplified()와 달리 trimmed()는 내부 공백을 변경하지 않습니다.

simplified(), QChar::SpecialCharacter, Spacing Characters참조하세요 .

void QByteArray::truncate(qsizetype pos)

인덱스 위치 pos 에서 바이트 배열을 잘라냅니다.

pos 이 배열의 끝을 넘어가면 아무 일도 일어나지 않습니다.

예시:

QByteArray ba("Stockholm");
ba.truncate(5);             // ba == "Stock"

chop(), resize(), first()도 참조하세요 .

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

이 바이트 배열의 끝에 ba 바이트 배열을 추가하고 이 바이트 배열에 대한 참조를 반환합니다.

예시:

QByteArray x("free");
QByteArray y("dom");
x += y;
// x == "freedom"

참고: QByteArray 은 암시적으로 공유되는 클래스입니다. 따라서 빈 바이트 배열에 추가하면 바이트 배열은 ba 에 있는 데이터를 공유할 뿐입니다. 이 경우 데이터 복사가 수행되지 않으므로 시간이 계속 걸립니다. 공유 인스턴스가 수정되면 복사(쓰기 시 복사)가 이루어지며 시간이 선형적으로 소요됩니다.

추가되는 바이트 배열이 비어 있지 않으면 데이터의 딥 카피가 수행되며 선형적인 시간이 소요됩니다.

QByteArray 은 데이터 끝에 여분의 공간을 미리 할당하여 각 추가 작업에 대해 재할당하지 않고도 데이터를 늘릴 수 있으므로 이 작업은 일반적으로 할당 오버헤드에 영향을 받지 않습니다.

append() 및 prepend()도 참조하세요 .

QByteArray &QByteArray::operator+=(char ch)

이 함수는 오버로드된 함수입니다.

이 바이트 배열의 끝에 ch 바이트값을 추가하고 이 바이트 배열에 대한 참조를 반환합니다.

QByteArray &QByteArray::operator+=(const char *str)

이 함수는 오버로드된 함수입니다.

이 바이트 배열의 끝에 '\0'으로 끝나는 문자열 str 을 추가하고 이 바이트 배열에 대한 참조를 반환합니다.

[noexcept] QByteArray &QByteArray::operator=(QByteArray &&other)

이동-이 other 인스턴스를 QByteArray 인스턴스에 할당합니다.

[noexcept] QByteArray &QByteArray::operator=(const QByteArray &other)

이 바이트 배열에 other 을 할당하고 이 바이트 배열에 대한 참조를 반환합니다.

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

이 함수는 오버로드된 함수입니다.

이 바이트 배열에 str 을 할당합니다.

str 는 널로 끝나는 문자열을 가리키는 것으로 가정하며, 그 길이는 동적으로 결정됩니다.

char &QByteArray::operator[](qsizetype i)

수정 가능한 참조로 인덱스 위치 i 의 바이트를 반환합니다.

i 는 바이트 배열에서 유효한 인덱스 위치여야 합니다(즉, 0 <= i < size()).

예시:

QByteArray ba("Hello, world");
cout << ba[0]; // prints H
ba[7] = 'W';
// ba == "Hello, World"

at()도 참조하세요 .

char QByteArray::operator[](qsizetype i) const

이 함수는 과부하된 함수입니다.

at(i)와 동일합니다.

관련 비회원

[since 6.1] template <typename T> qsizetype erase(QByteArray &ba, const T &t)

바이트 배열 ba 에서 t 과 비교되는 모든 요소를 제거합니다. 제거된 엘리먼트가 있으면 그 수를 반환합니다.

이 함수는 Qt 6.1에 도입되었습니다.

erase_if도 참조하십시오 .

[since 6.1] template <typename Predicate> qsizetype erase_if(QByteArray &ba, Predicate pred)

ba 바이트 배열에서 pred 술어가 참을 반환하는 모든 요소를 제거합니다. 제거된 엘리먼트가 있으면 그 수를 반환합니다.

이 함수는 Qt 6.1에 도입되었습니다.

erase도 참조하십시오 .

quint16 qChecksum(QByteArrayView data, Qt::ChecksumType standard = Qt::ChecksumIso3309)

data 의 CRC-16 체크섬을 반환합니다.

체크섬은 바이트 순서(엔디안)와 무관하며 standard 에 게시된 알고리즘에 따라 계산됩니다. 기본적으로 ISO 3309(Qt::ChecksumIso3309)에 게시된 알고리즘이 사용됩니다.

참고: 이 함수는 16비트 캐시 보존(16개 항목 테이블) 구현의 CRC-16-CCITT 알고리즘입니다.

QByteArray qCompress(const QByteArray &data, int compressionLevel = -1)

data 바이트 배열을 압축하고 압축된 데이터를 새 바이트 배열로 반환합니다.

compressionLevel 매개변수는 얼마나 많은 압축을 사용할지 지정합니다. 유효한 값은 0에서 9 사이이며, 9는 느린 알고리즘을 사용하는 대신 최대 압축(즉, 압축된 데이터가 더 작아짐)에 해당합니다. 값이 작을수록(8, 7, ..., 1) 약간 더 빠른 속도로 연속적으로 압축률이 낮아집니다. 값 0은 전혀 압축하지 않는 경우에 해당합니다. 기본값은 -1로, zlib의 기본 압축을 지정합니다.

qUncompress(const QByteArray &data)도 참조하세요 .

QByteArray qCompress(const uchar *data, qsizetype nbytes, int compressionLevel = -1)

이 함수는 오버로드된 함수입니다.

data 의 첫 번째 nbytes 를 압축 수준 compressionLevel 으로 압축하고 압축된 데이터를 새 바이트 배열로 반환합니다.

QByteArray qUncompress(const QByteArray &data)

data 바이트 배열의 압축을 풀고 압축되지 않은 데이터가 포함된 새 바이트 배열을 반환합니다.

입력 데이터가 손상된 경우 빈 QByteArray 을 반환합니다.

이 함수는 qCompress()로 압축된 데이터를 이 함수가 추가된 Qt 3.1부터 이전 Qt 버전까지 압축 해제합니다.

참고: 이 함수를 사용하여 zlib를 사용하여 압축된 외부 데이터를 압축 해제하려면 먼저 데이터가 포함된 바이트 배열에 4바이트 헤더를 앞에 추가해야 합니다. 헤더에는 부호 없는 빅 엔디안 32비트 정수로 표현된 압축 해제 데이터의 예상 길이(바이트 단위)가 포함되어야 합니다. 하지만 이 숫자는 출력 버퍼 크기의 초기 크기에 대한 힌트일 뿐입니다. 표시된 크기가 너무 작아서 결과를 담을 수 없는 경우, 출력 버퍼 크기는 출력에 맞거나 시스템의 메모리가 부족해질 때까지 계속 증가합니다. 따라서 32비트 헤더에도 불구하고 64비트 플랫폼에서 이 함수는 4GiB 이상의 출력을 생성할 수 있습니다.

참고: Qt 6.5 이전 버전에서는 2GiB 이상의 데이터가 불안정하게 작동했지만, Qt 6.0 이전 버전에서는 전혀 그렇지 않았습니다.

qCompress()도 참조하세요 .

QByteArray qUncompress(const uchar *data, qsizetype nbytes)

이 함수는 오버로드된 함수입니다.

data 의 첫 번째 nbytes 를 압축 해제하고 압축 해제된 데이터가 포함된 새 바이트 배열을 반환합니다.

int qstrcmp(const char *str1, const char *str2)

안전한 strcmp() 기능.

str1str2 을 비교합니다. str1str2 보다 작으면 음수 값을, str1str2 보다 크면 0 을, str1str2 보다 크면 양수 값을 반환합니다.

두 문자열이 모두 nullptr 인 경우 동일한 것으로 간주되며, 그렇지 않으면 둘 중 하나가 nullptr 인 경우 다른 하나가 빈 문자열인 경우에도 다른 하나보다 작은 것으로 처리됩니다.

qstrncmp(), qstricmp(), qstrnicmp(), Character Case, 및 QByteArray::compare()도 참조하세요 .

char *qstrcpy(char *dst, const char *src)

src 에서 '\0'까지의 모든 문자를 dst 으로 복사하고 dst 에 대한 포인터를 반환합니다. srcnullptr 인 경우 즉시 nullptr 을 반환합니다.

이 함수는 dstsrc 의 내용을 담을 수 있을 만큼 충분히 크다고 가정합니다.

참고: dstsrc 이 겹치면 동작이 정의되지 않습니다.

qstrncpy()도 참조하세요 .

char *qstrdup(const char *src)

중복 문자열을 반환합니다.

src 의 복사본을 위한 공간을 할당하고 복사한 다음 복사본에 대한 포인터를 반환합니다. srcnullptr 인 경우 즉시 nullptr 를 반환합니다.

소유권은 호출자에게 전달되므로 반환된 문자열은 delete[] 을 사용하여 삭제해야 합니다.

int qstricmp(const char *str1, const char *str2)

안전한 stricmp() 함수.

str1str2 을 비교하며, 아스키 문자의 경우 차이를 무시합니다.

str1str2 보다 작으면 음수 값을, str1str2 보다 크면 0 을, str1str2 보다 크면 양수 값을 반환합니다.

두 문자열이 모두 nullptr 인 경우 동일한 것으로 간주되며, 그렇지 않으면 둘 중 하나가 nullptr 인 경우 다른 하나가 빈 문자열인 경우에도 다른 하나보다 작은 것으로 처리됩니다.

qstrcmp(), qstrncmp(), qstrnicmp(), Character Case, 및 QByteArray::compare()도 참조하세요 .

size_t qstrlen(const char *str)

안전한 strlen() 함수입니다.

끝나는 '\0' 앞에 오는 문자 수( strnullptr 인 경우 0)를 반환합니다.

qstrnlen()도 참조하세요 .

int qstrncmp(const char *str1, const char *str2, size_t len)

안전한 strncmp() 함수.

str1str2 의 최대 len 바이트를 비교합니다.

str1str2 보다 작으면 음수 값을, str1str2 보다 크면 0 을, str1str2 보다 크면 양수 값을 반환합니다.

두 문자열이 모두 nullptr 인 경우 동일한 것으로 간주되며, 그렇지 않으면 둘 중 하나가 nullptr 인 경우 다른 하나가 빈 문자열이거나 len 이 0 인 경우에도 다른 하나보다 작은 것으로 처리됩니다.

qstrcmp(), qstricmp(), qstrnicmp(), Character Case, 및 QByteArray::compare()도 참조하세요 .

char *qstrncpy(char *dst, const char *src, size_t len)

안전한 strncpy() 함수.

src ( len 또는 종료 '\0' 중 먼저 오는 것에서 멈춤)에서 dst 으로 최대 len 바이트를 복사합니다. dstnullptr 이거나 len 이 0인 경우를 제외하고 dst 이 '\0'으로 끝나는 것을 보장합니다. srcnullptr 이면 nullptr 을 반환하고, 그렇지 않으면 dst 을 반환합니다.

이 함수는 dst 의 길이가 len 자 이상이라고 가정합니다.

참고: dstsrc 이 겹치면 동작이 정의되지 않습니다.

참고: strncpy()와 달리 이 함수는 dst 의 모든 len 바이트에 '\0'을 쓰지 않고 종결하는 '\0' 뒤에 멈춥니다. 이런 의미에서 C11의 strncpy_s()와 유사합니다.

qstrcpy()도 참조하세요 .

int qstrnicmp(const char *str1, const char *str2, size_t len)

안전한 strnicmp() 함수.

str1str2 의 최대 len 바이트를 비교하며, ASCII 문자의 경우 차이를 무시합니다.

str1str2 보다 작으면 음수 값을, str1str2 보다 크면 0 을, str1str2 보다 크면 양수 값을 반환합니다.

두 문자열이 모두 nullptr 인 경우 동일한 것으로 간주되며, 그렇지 않으면 둘 중 하나가 nullptr 인 경우 다른 하나가 빈 문자열이거나 len 가 0 인 경우에도 다른 하나보다 작은 것으로 처리됩니다.

qstrcmp(), qstrncmp(), qstricmp(), Character Case, 및 QByteArray::compare()도 참조하세요 .

size_t qstrnlen(const char *str, size_t maxlen)

안전한 strnlen() 함수입니다.

종료하는 '\0' 앞에 오는 문자 수를 반환하지만 최대 maxlen 까지 반환합니다. strnullptr 인 경우 0을 반환합니다.

qstrlen()도 참조하세요 .

[noexcept] bool operator!=(const QByteArray &lhs, const QByteArray &rhs)

이 함수는 오버로드된 함수입니다.

바이트 배열 lhs 이 바이트 배열 rhs 과 같지 않으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QByteArray::compare()도 참조하세요 .

[noexcept] bool operator!=(const QByteArray &lhs, const char *const &rhs)

이 함수는 오버로드된 함수입니다.

바이트 배열 lhs 이 '\0'으로 끝나는 문자열 rhs 과 같지 않은 경우 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QByteArray::compare()도 참조하세요 .

[noexcept] bool operator!=(const char *const &lhs, const QByteArray &rhs)

이 함수는 오버로드된 함수입니다.

'\0'으로 끝나는 문자열 lhs 이 바이트 배열 rhs 과 같지 않은 경우 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QByteArray::compare()도 참조하세요 .

[noexcept, since 6.4] QByteArray operator""_ba(const char *str, size_t size)

문자 문자열 리터럴 str 의 첫 번째 size 문자로 QByteArray 을 생성하는 리터럴 연산자입니다.

QByteArray 은 컴파일 시 생성되며, 생성된 문자열 데이터는 컴파일된 객체 파일의 읽기 전용 세그먼트에 저장됩니다. 중복 리터럴은 동일한 읽기 전용 메모리를 공유할 수 있습니다. 이 기능은 QByteArrayLiteral 와 호환되지만 코드에 많은 문자열 리터럴이 있을 때 타이핑을 절약할 수 있습니다.

다음 코드는 QByteArray 을 생성합니다:

using namespace Qt::Literals::StringLiterals;

auto str = "hello"_ba;

이 함수는 Qt 6.4에 도입되었습니다.

Qt::Literals::StringLiterals참조하십시오 .

QByteArray operator+(char a1, const QByteArray &a2)

이 함수는 오버로드된 함수입니다.

바이트 a1 와 바이트 배열 a2 을 연결한 결과인 바이트 배열을 반환합니다.

QByteArray operator+(const QByteArray &a1, char a2)

이 함수는 오버로드된 함수입니다.

바이트 배열 a1 과 바이트 a2 을 연결한 결과인 바이트 배열을 반환합니다.

QByteArray operator+(const QByteArray &a1, const QByteArray &a2)

바이트 배열 a1 과 바이트 배열 a2 을 연결한 결과인 바이트 배열을 반환합니다.

QByteArray::operator+=()도 참조하세요 .

QByteArray operator+(const QByteArray &a1, const char *a2)

이 함수는 오버로드된 함수입니다.

바이트 배열 a1 과 '\0'으로 끝나는 문자열 a2 을 연결한 결과인 바이트 배열을 반환합니다.

QByteArray operator+(const char *a1, const QByteArray &a2)

이 함수는 오버로드된 함수입니다.

'\0'으로 끝나는 문자열 a1 과 바이트 배열 a2 을 연결한 결과인 바이트 배열을 반환합니다.

[noexcept] bool operator<(const QByteArray &lhs, const QByteArray &rhs)

이 함수는 오버로드된 함수입니다.

바이트 배열 lhs 이 바이트 배열 rhs 보다 어휘적으로 작으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QByteArray::compare()도 참조하세요 .

[noexcept] bool operator<(const QByteArray &lhs, const char *const &rhs)

이 함수는 오버로드된 함수입니다.

바이트 배열 lhs 이 '\0'으로 끝나는 문자열 rhs 보다 어휘적으로 작으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QByteArray::compare()도 참조하세요 .

[noexcept] bool operator<(const char *const &lhs, const QByteArray &rhs)

이 함수는 오버로드된 함수입니다.

'\0'으로 끝나는 문자열 lhs 이 바이트 배열 rhs 보다 어휘적으로 작으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QByteArray::compare()도 참조하세요 .

QDataStream &operator<<(QDataStream &out, const QByteArray &ba)

바이트 배열 ba 을 스트림 out 에 쓰고 스트림에 대한 참조를 반환합니다.

Qt 데이터 유형 직렬화도참조하십시오 .

[noexcept] bool operator<=(const QByteArray &lhs, const QByteArray &rhs)

이 함수는 오버로드된 함수입니다.

바이트 배열 lhs 이 어휘적으로 바이트 배열 rhs 보다 작거나 같으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QByteArray::compare()도 참조하세요 .

[noexcept] bool operator<=(const QByteArray &lhs, const char *const &rhs)

이 함수는 오버로드된 함수입니다.

바이트 배열 lhs 이 '\0'으로 끝나는 문자열 rhs 보다 어휘적으로 작거나 같으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QByteArray::compare()도 참조하세요 .

[noexcept] bool operator<=(const char *const &lhs, const QByteArray &rhs)

이 함수는 오버로드된 함수입니다.

'\0'으로 끝나는 문자열 lhs 이 바이트 배열 rhs 보다 어휘적으로 작거나 같으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QByteArray::compare()도 참조하세요 .

[noexcept] bool operator==(const QByteArray &lhs, const QByteArray &rhs)

이 함수는 오버로드된 함수입니다.

바이트 배열 lhs 이 바이트 배열 rhs 과 같으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QByteArray::compare()도 참조하세요 .

[noexcept] bool operator==(const QByteArray &lhs, const char *const &rhs)

이 함수는 오버로드된 함수입니다.

바이트 배열 lhs 이 '\0'으로 끝나는 문자열 rhs 과 같으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QByteArray::compare()도 참조하세요 .

[noexcept] bool operator==(const char *const &lhs, const QByteArray &rhs)

이 함수는 오버로드된 함수입니다.

'\0'으로 끝나는 문자열 lhs 이 바이트 배열 rhs 과 같으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QByteArray::compare()도 참조하세요 .

[noexcept] bool operator>(const QByteArray &lhs, const QByteArray &rhs)

이 함수는 오버로드된 함수입니다.

바이트 배열 lhs 이 바이트 배열 rhs 보다 어휘적으로 크면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QByteArray::compare()도 참조하세요 .

[noexcept] bool operator>(const QByteArray &lhs, const char *const &rhs)

이 함수는 오버로드된 함수입니다.

바이트 배열 lhs 이 '\0'으로 끝나는 문자열 rhs 보다 어휘적으로 크면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QByteArray::compare()도 참조하세요 .

[noexcept] bool operator>(const char *const &lhs, const QByteArray &rhs)

이 함수는 오버로드된 함수입니다.

'\0'으로 끝나는 문자열 lhs 이 바이트 배열 rhs 보다 어휘적으로 크면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QByteArray::compare()도 참조하세요 .

[noexcept] bool operator>=(const QByteArray &lhs, const QByteArray &rhs)

이 함수는 오버로드된 함수입니다.

바이트 배열 lhs 이 어휘적으로 바이트 배열 rhs 보다 크거나 같으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QByteArray::compare()도 참조하세요 .

[noexcept] bool operator>=(const QByteArray &lhs, const char *const &rhs)

이 함수는 오버로드된 함수입니다.

바이트 배열 lhs 이 '\0'으로 끝나는 문자열 rhs 보다 어휘적으로 크거나 같으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QByteArray::compare()도 참조하세요 .

[noexcept] bool operator>=(const char *const &lhs, const QByteArray &rhs)

이 함수는 오버로드된 함수입니다.

'\0'으로 끝나는 문자열 lhs 이 바이트 배열 rhs 보다 어휘적으로 크거나 같으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QByteArray::compare()도 참조하세요 .

QDataStream &operator>>(QDataStream &in, QByteArray &ba)

in 스트림에서 ba 로 바이트 배열을 읽고 스트림에 대한 참조를 반환합니다.

Qt 데이터 유형 직렬화도참조하십시오 .

매크로 문서

QByteArrayLiteral(ba)

매크로는 컴파일 시 문자열 리터럴 ba 에서 QByteArray 에 대한 데이터를 생성합니다. 이 경우 QByteArray 을 생성하는 것은 무료이며, 생성된 바이트 배열 데이터는 컴파일된 객체 파일의 읽기 전용 세그먼트에 저장됩니다.

예를 들어

QByteArray ba = QByteArrayLiteral("byte array contents");

큰따옴표로 묶인 일반 C++ 문자열 리터럴 대신 QByteArrayLiteral을 사용하면 컴파일 시점에 알려진 데이터에서 QByteArray 인스턴스를 생성하는 속도를 크게 높일 수 있습니다.

QStringLiteral도 참조하세요 .

QT_NO_CAST_FROM_BYTEARRAY

QByteArray 에서 const char * 또는 const void * 로의 자동 변환을 비활성화합니다.

QT_NO_CAST_TO_ASCIIQT_NO_CAST_FROM_ASCII참조하세요 .

[since 6.8] QT_NO_QSNPRINTF

이 매크로를 정의하면 qsnprintf() 및 qvsnprintf() 함수를 사용할 수 없게 됩니다. 비활성화해야 하는 이유는 해당 함수의 설명서를 참조하십시오.

이 매크로는 Qt 6.8에 도입되었습니다.

qsnprintf() 및 qvsnprintf()도 참조하세요 .

© 2025 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.