Я уже нашел, как использовать для своей выгоды все слова предложения, но не первое слово только.
NSString *txt =@"hi my friends!"
[txt capitalizedString];
Я не хочу изменяться на нижний регистр и использовать для своей выгоды первый символ. Я хотел бы использовать для своей выгоды первое слово только без изменения другие.
Вот еще один вариант:
NSString *txt = @"hi my friends!";
txt = [txt stringByReplacingCharactersInRange:NSMakeRange(0,1) withString:[[txt substringToIndex:1] uppercaseString]];
Для языка Swift:
txt.replaceRange(txt.startIndex...txt.startIndex, with: String(txt[txt.startIndex]).capitalizedString)
Используйте
- (NSArray *)componentsSeparatedByCharactersInSet:(NSCharacterSet *)separator
и введите первый объект в массиве с заглавной буквы, а затем используйте
- (NSString *)componentsJoinedByString:(NSString *)separator
, чтобы соединить их обратно
Чтобы были варианты, я бы предложил:
NSString *myString = [NSString stringWithFormat:@"this is a string..."];
char *tmpStr = calloc([myString length] + 1,sizeof(char));
[myString getCString:tmpStr maxLength:[myString length] + 1 encoding:NSUTF8StringEncoding];
int sIndex = 0;
/* skip non-alpha characters at beginning of string */
while (!isalpha(tmpStr[sIndex])) {
sIndex++;
}
toupper(tmpStr[sIndex]);
myString = [NSString stringWithCString:tmpStr encoding:NSUTF8StringEncoding];
Я на работе и у меня нет моего Mac, чтобы проверить это, но если я правильно помню, вы не можете использовать [myString cStringUsingEncoding:NSUTF8StringEncoding]
, потому что он возвращает const char *
.