Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите с программой на чистом Си

47K
23 февраля 2009 года
Grafek3d
3 / / 23.02.2009
Вобщем мне нужно следующее:

итак мне нужно написать программу на чистом СИ

дано
строковая переменная
char* txt = "abcdefINT087F8.000 fgencdIN098743.000 xyz";

1.Программа последовательно просматривает каждый символ строки.
2.После встречи в строке сочетания ".0" следует отсчитать назад 8 символов.
3.Если там будет цифра, то продолжить поиск дальше до конца файла. Если при последующих аналогичных проверках будут

встречаться только цифры, то дочитать строку до конца, выдать сообщение "кодировка S57" и завершить работу.
4.Если же 8-ой символ окажется буквой, то сразу выдать сообщение "кодировка S63" и завершить работу.

Уточнение 8-м символом считать символ, стоящий после "IN".



Система QNX 4. Используем только СИ без С++.


Заранее огромное спасибо.
47K
16 марта 2009 года
Grafek3d
3 / / 23.02.2009
Пробовал писать используя указатели, подскажите в чем ошибка.

Цитата:

#include <string.h>
main()
{
char *s = "fsssssskdfd.0 fdsfsdds";
char c;

с = strstr(s, ".0");
с -= 7;
printf("На семь знаков назад стоит знак %s", с));
return 0;
}

9
16 марта 2009 года
Lerkin
3.0K / / 25.03.2003
Цитата: Grafek3d
Пробовал писать используя указатели, подскажите в чем ошибка.


Как верно заметил Джоел Спольски "Понимание указателей - врожденная способность. Или понимаешь, или нет".

Код:
#include <string.h>
main()
{
char *s = "fsssssskdfd.0 fdsfsdds";


[SIZE="4"][COLOR="Red"]char c;

с = strstr(s, ".0");
с -= 7;[/COLOR][/SIZE]


printf("На семь знаков назад стоит знак %s", с));
return 0;
}


И вообще, все неправильно. ;)
47K
16 марта 2009 года
Grafek3d
3 / / 23.02.2009
Ответ в стиле "я здесь умный, а ты дурак" никогда не помогал.
9
16 марта 2009 года
Lerkin
3.0K / / 25.03.2003
Цитата: Grafek3d
Ответ в стиле "я здесь умный, а ты дурак" никогда не помогал.


Да, я здесь умный, и поэтому даже выделил красным строки, в которых ошибка. А ты не об этом просил?

294
16 марта 2009 года
Plisteron
982 / / 29.08.2003
Творчески переработав креатив предыдущих ораторов, получил нижеследующее.
Код:
#include <string.h>
#include <stdio.h>
int main(void)
{
    char *txt = "abcdefINT087F8.000 fgencdIN098743.000 xyz";
    char *p;
    int   S57 = 1;
    char *tx1 = txt;
    char  c;
    int   len = strlen(txt);

    while((p = strstr(tx1, ".0")) != NULL && tx1 < txt + len)
    {
        c = *(p - 6);
        if(!isdigit(c))
        {
            S57 = 0;
            break;
        }
        tx1 = p + 2;
    }
    if(S57)
        puts("S57");
    else
        puts("S63");
    return 0;
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог