Управление непостоянными строковыми объектами

Можно выбрать из множества строковых функций объекта, чтобы добавить к и изменить содержание непостоянных CFString объекты. Эти функции, как можно было бы ожидать, не продолжают работать неизменные CFString объекты. Если Вы хотите изменить содержание a CFString объект, необходимо или запустить с непостоянного содержания меньше CFString возразите или сделайте непостоянную копию неизменного CFString объект. Посмотрите Создающие Непостоянные Строковые Объекты для получения информации о создании объектов этого вида.

Формы мутации

Функции, управляющие непостоянный CFString объекты попадают в несколько категорий, описанных в следующих разделах.

Добавление

Можно добавить строки во множестве форматов к непостоянному CFString объект:прочее. CFString объекты (CFStringAppend), струны до (CFStringAppendCString), символы Unicode (CFStringAppendCharacters), и отформатированные строки (CFStringAppendFormat и CFStringAppendFormatAndArguments).

Вставка, удаляя, заменяя

Функции CFStringInsert, CFStringDelete, и CFStringReplace выполните соответствующие операции. Эти функции требуют, чтобы Вы указали основанный на нуле индекс в, или диапазон, строка, которая будет изменена.

Дополнение и обрезка

CFStringPad функция расширяет или усекает непостоянное CFString к данной длине; если это расширяет строку, это дополняет указанным символом или символами. CFStringTrim функционируйте обрезает определенный символ с обеих сторон строки. Например, вызов:

CFStringTrim(CFStringCreateMutableCopy(NULL, NULL, CFSTR("xxxabcx")), CFSTR("x"));

привел бы к строке «abc». Связанная функция, CFStringTrimWhitespace, делает ту же вещь с пробельными символами, включающими такие символы как вкладки и возвраты каретки.

Операции случая

Три функции изменяют случай непостоянной строки, делая все это верхним регистром (CFStringUppercase), весь нижний регистр (CFStringLowercase), или просто первый символ каждого слова в строковом верхнем регистре (CFStringCapitalize).

Примеры кода

Перечисление 1 иллюстрирует несколько из функций, управляющих непостоянный CFString объекты:

  Операции Listing 1 Various на непостоянной строке

void mutableStringOperations() {
 
    CFMutableStringRef mstr;
    CFRange range;
    StringPtr pbuf;
    CFIndex length;
 
    mstr = CFStringCreateMutable(NULL, 0);
    CFStringAppend(mstr, CFSTR("Now is the time for all good men to come to the aid of their "));
    CFStringAppend(mstr, CFSTR("party."));
    CFShow(CFSTR("Mutable String 1 - Appended CFStrings"));
    CFShow(mstr);
 
    range = CFStringFind(mstr, CFSTR("good"), 0);
    if (range.length > 0) {
        CFStringReplace(mstr, range, CFSTR("bad"));
        CFShow(CFSTR("Mutable String 2 - Replaced substring"));
        CFShow(mstr);
    }
 
    CFStringUppercase(mstr, NULL);
    CFShow(CFSTR("Mutable String 3 - Convert to uppercase:"));
    CFShow(mstr);
}

Когда скомпилировано и выполнено, этот код генерирует следующий вывод:

Mutable String 1 - Appended CFStrings
Now is the time for all good men to come to the aid of their party.
Mutable String 2 - Replaced substring
Now is the time for all bad men to come to the aid of their party.
Mutable String 3 - Convert to uppercase:
NOW IS THE TIME FOR ALL BAD MEN TO COME TO THE AID OF THEIR PARTY.