LINUX.ORG.RU

Очень срочно вопрос про С


0

0

Привет!

Не подскажите, как мне выделить первые два символа из такой
строчки - 17/02/2001 - т е нужно обработать дату - вынуть
число 17. Тип, в котором это хранится - char.
Как это проще и быстрее сделать?

Заранее спасибо!

anonymous

//Самый простой и тупой способ = char *str="17/02/2001"; char dstr[3]; dstr[0]=str[0]; dstr[1]=str[1]; dstr[2]=0; int date = atoi(dstr); //Или что-то в этом роде (Ошибка может только в синтаксисе). /*Примерно так. Функция преобразования строчки в int может отличаться синтаксисом, но смысл тот-же. Другое дело если дата не всегда два символа, а например 1. В этом случае пользоваться функциями типа strtok и.т.д ...*/

SuperStar
()

Можно использовать такой кусок:

{
char tmpString[2];
strncpy(tmpString, your_original_string, 2);
}

Akan
()

а мона еще проще:
int date, month, year;
char str[] = "17/02/2001";
sscanf( str, "%d/%d/%d", &date, &month, &year );

hoopoe ★★
()

Упс, не въехал в содержание... Еще разок. Допустим, у тебя есть char *Str и тебе надо получить результат в int num, тогда: int num = ((((int)Str[0]-48)*10) + (int)Str[1]-48);

Akan
()

char *str = "17/02/00"; int day = atoi(str); // все! atoi() переводит в int ДО ПЕРВОГО СИМВОЛА, который трактуется не как число. телемаркет!!!

stormbringer
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.