你可以有大量的选择字符串对象函数去修改添加可变CFString对象的内容。这些函数,可能跟你想象的一样,不能操纵不可变的CFString对象。如果你想要改变一个CFString对象的内容,你必须要么使用一个内容较少的CFString对象,或者创建一个不可变字符串对象的可变的拷贝。查看“创建不可变字符串”,描述如何了创建可变字符串对象。
操作可变函数的表单
操作不可变CFString对象的函数分为几种类别,在下面的章节中描述。
添加
你可以添加多种格式的字符串到可变CFString对象中;其他的CFString对象(CFStringAppend),C字符串(CFStringAppendCString),Unicode字符(CFStringAppendCharacters),和格式化的字符串(CFStringAppendFormat)和(CFStringAppendFormatAndArguments)。
插入,删除,替换
这些函数包括:CFStringInsert,CFStringDelete,和CFStringReplace表现执行这些适当的操作。这些函数要求你指定一个zero-based索引,或者需要修改的字符串的范围位置。
填充和调整
CFStringPad函数扩展或者删除一个可变字符串到一个指定的长度;如果它扩展字符串,它填充指定的字符串。CFStringTrim函数调整字符串两端的指定字符。举个例子,下面的调用:
CFStringTrim(CFStringCreateMutableCopy(NULL,NULL,CFSTR("xxxabcx")),CFSTR("X"))
结果将会是字符串:“abc”。一个相关的函数,CFStringTrimWhitespace,对空白的字符做一样的事情,其中空白字符包含指标换行符等。
状态操作
三个修改可变字符串状态函数,全部转换成大写(CFStringUppercase),全部转换成小写(CFStringLowercase),或者仅仅是字符串的单词中得第一个字符大写(CFStringCapitalize)。
代码例子
片段1阐述了一些操纵可变CFString对象的函数
片段1 操纵可变CFString对象
void mutableStringOperations()
{
CFMutableStringRef mstr;
CFRange range;
StringPtr pbuf;
CFIndex length;
mstr = CFStringCreateMutable(NULL, 0);
CFStringAppend(mstr, CFSTR("Now is the time for all good man to come to the aid of their"));
CFStringAppend(mstr, CFSTR(" party."));
CFShow(CFSTR("Mutable String 1 - Appended CFStrings"));
CFShow(mstr);
range = CFStringFind(mstr, CFSTR("party"), 0);
if (range.length > 0 ) {
CFStringReplace(mstr, range, CFSTR("bad"));
CFShow(CFSTR("Mutable String 2 - Replace substring"));
CFShow(mstr);
}
CFStringUppercase(mstr, NULL);
CFShow(CFSTR("Mutable String 3-Conver to UpperCase"));
CFShow(mstr);
}
编译执行,这段代码产生以下输入:
Mutable String 1 - Appended CFStrings
Now is the time for all good man to come to the aid of their party.
Mutable String 2 - Replace substring
Now is the time for all good man to come to the aid of their bad.
Mutable String 3-Conver to UpperCase
NOW IS THE TIME FOR ALL GOOD MAN TO COME TO THE AID OF THEIR BAD.