2010-08-25 13 views
1
unichar c; 

c = [myString characterAtIndex:0]; 

unichar catchcar = [c lowercaseString]; 

erreur: type de destinataire non valide unicar.Comment convertir les minuscules en majuscules?

Je sais que lowercaseString est utilisé pour cacher une chaîne qui n'est pas un caractère. y-a-t'il une solution?

+1

pourquoi ne pas vous venez de faire la chaîne lowerCase avant de récupérer le caractère de celui-ci? – Neutralizer

+0

@Ashraf, je l'ai fait, et cela fonctionne. – user426795

Répondre

8

vous pourriez faire ce qui suit:

unichar catchcar = [[myString lowercaseString] characterAtIndex: 0]; 

Si vous avez un seul caractère, procédez comme suit:

// given unichar c 

unichar catchcar = [[[NSString stringWithCharacters:&c length:1] lowercaseString] characterAtIndex: 0]; 
+0

fileName = [[NSBundle mainBundle] pathForResource: catchar deType: @ "txt"]; lance une erreur. Je passe catchar au nom de fichier. – user426795

+0

@ user426795 - Pourquoi essayez-vous de passer unichar à une méthode qui prend un NSString? Utilisez simplement un NSString dans ce cas. –

1
unichar c = [[myString lowercaseString] characterAtIndex:0]; 

essayer.

2

La solution la plus simple pour convertir un cas sur un seul caractère consiste simplement à utiliser les fonctions C tolower et toupper. En utilisant l'exemple de code de la question et la réécriture qui donnerait ceci pour la conversion en minuscules:

#import <ctype.h> 

unichar catchcar = tolower([myString characterAtIndex:0]); 

Pas besoin de faire quoi que ce soit compliqué avec l'API NSString. Et pas besoin de faire toute la chaîne minuscule en premier non plus.

Hope this helps,

Erik

Questions connexes