Есть ли функция, которая позволяет мне смотреть на следующий символ? - PullRequest
4 голосов
/ 28 сентября 2010

есть ли в c функция, которая позволяет мне смотреть на следующий символ в массиве?Также, где я мог найти эту информацию самостоятельно, я попробовал Google и искал существующие темы на этом сайте.

Я пытаюсь извлечь числа из строки и сохранить эти числа.Поэтому я хочу сделать что-то вроде

, если (c = число и c "следующий символ" не число) {значение = значение * 10 + c-'0 ', номер магазина}

Ответы [ 3 ]

6 голосов
/ 28 сентября 2010

Если текущий символ array[i], следующий символ array[i+1].

5 голосов
/ 28 сентября 2010

Вы можете написать метод для этого:

char next_char(char *array, int i, int size){
    return (++i) < size ? array[i] : '\0';
}

РЕДАКТИРОВАТЬ: После прочтения вашего вопроса может быть разумным что-то вроде этого.

if(isdigit(array[i]) && !isdigit(next_char(array,i,size)){
    ..
}

Лучшее решение было бы дляцикл:

int val = 0;
for(i = 0; i < size; i++){
    if(isdigit(i)){
        val = 10 * val + array[i] - '0';
    }else{
        // Store the value
        val = 0;            
    }
}
0 голосов
/ 28 сентября 2010

Чтобы получить символ из массива символов, просто используйте:

array[i]

где указатель.

Если вы хотите прочитать каждый символ, вы можете использовать цикл:

for(size_t i = 0; i < sizeof(array); i++)
{
  char cur = array[i];
}

Вы также можете увеличить указатель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...