2010-04-23 6 views
4

Je récupère différents caractères d'une chaîne en utilisant la fonction thsi et en leur ajoutant 5 pour afficher le caractère correspondant par exemple. 'a' affiche 'f' et 'h' affiche 'm' .. mais le problème est que je ne suis pas capable d'ajouter ces caractères dans une chaîne que je peux utiliser pour afficher comme 'fm' ... peut Quelqu'un aide? Voici le code strResult (mutablestring) devient null seulement.ajouter des caractères différents à un NSString un par un?

[email protected]"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); 
} 
+1

Comment strResult est définie, avez-vous initialisé quelque part? – Vladimir

Répondre

17

Tout d'abord, vous devez vous assurer que vous allouez la chaîne strResult, comme ceci:

NSMutableString *strResult = [NSMutableString string]; 

deuxième; vous pouvez, et en effet devriez, utiliser -appendFormat: pour ajouter les caractères à la chaîne; la chaîne supplémentaire temporaire est plutôt inutile.

Qu'est-ce que vous voulez alors:

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); 

Cela devrait produire:

f 
g 
h 
i 
j 
k 
fghijk 
Questions connexes