IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Файлы, Язык Си
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 146
Пол: Мужской

Репутация: -  0  +


Задание:Написать программу, которая считывает текст из файла и определяет, сколько в нём слов, состоящих из не более чем четырёх букв.

Я написал открытие и чтение из файла, а как делать дальше, чтобы узнать сколько слов, состоящих из не более чем четырёх букв. Подскажите хотя бы идею!!!

Программа:
Код

# include <stdio.h>
void main ()
  {
  FILE *fin;
  fin=fopen("G:\\text.txt","rt");
  if (!fin)
    {
    printf("\nOshibka otkritiya faila!");
    return;
    }
  fseek(fin,0,SEEK_END);
  long len=ftell(fin);
  char *buf=new char[len+1];
  const int l_block=1024;
  int num_block=len/l_block;
  fseek(fin,0,SEEK_SET);
  fread(buf,l_block,num_block+1,fin);
  buf[len]='\0';
  long i=0;
  fclose(fin);
  }



Сообщение отредактировано: Neon6868 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


# include <stdio.h>
# include <conio.h>
# include <string.h>
# define file_name "C:\\text.txt"
# define limits " ;,.?!"

FILE *f;

int count, back, i;

int main(void) {
char *s;
s = (char*)malloc(255 * sizeof(char));

if (!(f = fopen(file_name, "rt"))) {
printf("Cant open file '%s'\n", file_name);
return 0;
}

count = 0;

while (fgets(s, 255, f)) {
puts(s);
i = 0;
while (i < strlen(s)) {
while ((i < strlen(s)) && (strchr(limits, s[i]))) i++;
if (i < strlen(s)) {
back = i;
while ((i < strlen(s)) && (!(strchr(limits, s[i])))) i++;
count += (i - back - 1 <= 4) ? 1 : 0;
}
}
}

printf("count = %d\n", count);

fclose(f); free(s);

return 0;
}




--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Neon6868   Файлы   21.04.2007 22:09
klem4   Язык - то какой ? телепат штатный в отпуске ...   21.04.2007 22:15
Neon6868   Язык - то какой ? телепат штатный в отпуске ... …   21.04.2007 22:17
klem4   Как могут разделяться слова ?   21.04.2007 22:34
Neon6868   Как могут разделяться слова ? Я вопрос не совсе…   21.04.2007 22:36
klem4   В принципе не важно ... # include <stdio.h…   21.04.2007 23:00
Neon6868   Я твою программу проверил,но там 5 ошибок!   21.04.2007 23:41
klem4   очень интересно ... а главное аргументированно и и…   21.04.2007 23:43
Neon6868   Компилятор Turbo C Ошибки: 8 строка-Undefined symb…   22.04.2007 0:29
klem4   Интересно как ты свою программу компилировал ... …   22.04.2007 0:33
Neon6868   Теперь уже 2 ошибки: 11 строка-Declaration is not …   22.04.2007 0:50
klem4   Заархивируй папку с компилятором и присоедини сюда…   22.04.2007 0:54
Neon6868   У меня не получается архив присоединить! [b]Д…   22.04.2007 1:12
klem4   Бред какой-то ... ну залей архив на zalil.ru или н…   22.04.2007 1:35
Neon6868   Вот ссылка: Архив Turbo C   22.04.2007 1:46
klem4   # include <stdio.h> # include <conio.h…   22.04.2007 1:55
Neon6868   klem4 Большое спасибо! Очень помог!   22.04.2007 3:14


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.04.2024 9:36
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name