Как мне перебрать строку NSString в задаче c? - PullRequest
4 голосов
/ 31 марта 2012

Как можно перебирать объект NSString в Objective c, поддерживая индекс для символа, в котором я сейчас нахожусь?

Я хочу увеличить значение ASCII каждого третьего символа на 3, а затем распечатать это увеличенноесимвол в метке в моем пользовательском интерфейсе.

Ответы [ 2 ]

9 голосов
/ 31 марта 2012

Не ясно, хотите ли вы просто напечатать увеличенные символы или все.Если первое, вот как вы это сделаете:

NSString *myString = @"myString";
NSMutableString *newString = [NSMutableString string];
for (int i = 0; i < [myString length]; i++) 
{
    int ascii = [myString characterAtIndex:i];
    if (i % 3 == 0) 
    {
        ascii++;
        [newString appendFormat:@"%c",ascii];
    }
}
myLabel.text = newString;
2 голосов
/ 31 марта 2012

Это сработает?

NSString *incrementString(NSString *input)
{
    const char *inputUTF8 = [input UTF8String]; // notice we get the buffers so that we don't have to deal with the overhead of making many message calls.
    char *outputUTF8 = calloc(input.length + 1, sizeof(*outputUTF8));

    for (int i = 0; i < input.length; i++)
    {
        outputUTF8[i] = i % 3 == 0 ? inputUTF8[i] + 3 : inputUTF8[i];
    }

    NSString *ret = [NSString stringWithUTF8String:outputUTF8];
    free(outputUTF8); // remember to free the buffer when done!
    return ret;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...