Ответ 1

В старые времена, когда мы могли предположить, что большинство компьютеров использовали ASCII, мы просто сделали бы

int i = c[0] - '0';

Но в эти дни Unicode это не очень хорошая идея. Никогда не было хорошей идеи, должен ли ваш код работать на компьютере, отличном от ASCII.

Изменить: хотя это выглядит хакерским, очевидно, что стандарт работает. Спасибо @Earwicker.

Ответ 2

Стандартная функция atoi(), скорее всего, сделает то, что вы хотите.

Простой пример с использованием "atoi":

#include <unistd.h>

int main(int argc, char *argv[])
{
    int useconds = atoi(argv[1]); 
    usleep(useconds);
}