逐个添加不同的字符到NSString?

hem*_*ant 5 iphone objective-c

我正在使用thsi函数从字符串中检索不同的字符,并向它们添加5以显示相应的字符,例如.'a'显示'f'和'h'显示'm'..但问题是我无法将这些字符添加到字符串中,我可以使用它来显示像'fm'...可以任何人救命??继承人代码strResult(mutablestring)仅获得null.

str=@"John";

int a=[str length];

for(i=0;i<a;i++)
{
  char ch=[str characterAtIndex:i];
  ch=ch+5;
  temp=[NSString stringWithFormat:@"%c",ch];
  [strResult appendString:temp];
  NSLog(@"%c",ch);
}
Run Code Online (Sandbox Code Playgroud)

Wil*_*and 19

首先,您需要确保分配字符串strResult,如下所示:

NSMutableString *strResult = [NSMutableString string];
Run Code Online (Sandbox Code Playgroud)

第二; 你可以,而且确实应该-appendFormat:用于将字符添加到字符串中; 临时额外的字符串是没用的.

你想要的是:

NSString *str = @"abcdef";
NSMutableString *strResult = [NSMutableString string];

for (NSUInteger i = 0; i < [str length]; i++) {
  char ch = [str characterAtIndex:i] + 5;
  NSLog(@"%c", ch);
  [strResult appendFormat:@"%c", ch];
}
NSLog(@"%@", strResult);
Run Code Online (Sandbox Code Playgroud)

这应该产生:

f
g
h
i
j
k
fghijk
Run Code Online (Sandbox Code Playgroud)