【发布时间】:2013-10-22 05:38:49
【问题描述】:
通过UTF8string方法从NSString转换后,是否可以替换c字符串中的字符?
以下面的代码为例。就是用特定的规则格式化一个字符串。
- (NSString *)formatString:(NSString *)input {
if (input.length==0) {
return @"";
}
//code to determine rule
....
....
// substitute output format with input characters
if (rule) {
input = [input substringFromIndex:prefix.length];
char *string = (char *)[rule UTF8String];
int repCount = 0;
for (int i=0; i<rule.length; i++) {
if (string[i] == '#') {
if (repCount < input.length)
string[i] = [input characterAtIndex:repCount++];//bad access
else
string[i] = ' ';
}
}
NSMutableString *output = [NSMutableString stringWithCString:string encoding:NSUTF8StringEncoding];
...
... //do something with the output
return output;
} else {
return input;
}
}
最初 string[0] 有 '#',它应该被替换为输入中的字符。这不会发生。
【问题讨论】:
-
能否提供您使用的规则前缀和输入示例?
-
我真的很抱歉,因为我不能这样做,它是私人的 :-)
标签: objective-c nsstring