#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;
}
Помогите с программой на чистом Си
итак мне нужно написать программу на чистом СИ
дано
строковая переменная
char* txt = "abcdefINT087F8.000 fgencdIN098743.000 xyz";
1.Программа последовательно просматривает каждый символ строки.
2.После встречи в строке сочетания ".0" следует отсчитать назад 8 символов.
3.Если там будет цифра, то продолжить поиск дальше до конца файла. Если при последующих аналогичных проверках будут
встречаться только цифры, то дочитать строку до конца, выдать сообщение "кодировка S57" и завершить работу.
4.Если же 8-ой символ окажется буквой, то сразу выдать сообщение "кодировка S63" и завершить работу.
Уточнение 8-м символом считать символ, стоящий после "IN".
Система QNX 4. Используем только СИ без С++.
Заранее огромное спасибо.
Цитата:
#include <string.h>
main()
{
char *s = "fsssssskdfd.0 fdsfsdds";
char c;
с = strstr(s, ".0");
с -= 7;
printf("На семь знаков назад стоит знак %s", с));
return 0;
}
Цитата: Grafek3d
Пробовал писать используя указатели, подскажите в чем ошибка.
Как верно заметил Джоел Спольски "Понимание указателей - врожденная способность. Или понимаешь, или нет".
Код:
И вообще, все неправильно. ;)
Ответ в стиле "я здесь умный, а ты дурак" никогда не помогал.
Цитата: Grafek3d
Ответ в стиле "я здесь умный, а ты дурак" никогда не помогал.
Да, я здесь умный, и поэтому даже выделил красным строки, в которых ошибка. А ты не об этом просил?
Код:
#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;
}
#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;
}