Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Задачка на си

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Задачка на си
Имя
Сообщение << Старые топики   Новые топики >>
Задачка на си - 2007-12-19 03:51:53.330000   
RaiderGastarbayter

Сообщений: 4
Оценки: 0
Присоединился: 2007-12-19 03:48:48.643333
помогите реализовать задачу в код….

Форматирование текста. Дан текстовый файл, который содержит строки различной длины. Создайте новый файл, в котором сохраните исходный текст в отформатированном виде, т.е. в тексте не должно быть строк длиной, превышающей заданную, правый край текст должен быть, выровнен за счет равномерного увеличения промежутков между словами. Разбивать строки разрешается только по концам слов.
Post #: 1
RE: Задачка на си - 2007-12-19 10:28:22.956666   
Kill_em_all

Сообщений: 395
Оценки: 0
Присоединился: 2005-03-25 22:40:01
Что тебе конкретно не понятно? Сегодня домой приду, попробую написать
Post #: 2
RE: Задачка на си - 2007-12-19 11:20:53.506666   
RaiderGastarbayter

Сообщений: 4
Оценки: 0
Присоединился: 2007-12-19 03:48:48.643333
Я уже эту задачу 5-ю способоми решал, и почёму то она не хочет работать правильно
Post #: 3
RE: Задачка на си - 2007-12-20 19:50:01.200000   
RaiderGastarbayter

Сообщений: 4
Оценки: 0
Присоединился: 2007-12-19 03:48:48.643333
up
Post #: 4
RE: Задачка на си - 2007-12-20 19:56:03.140000   
RaiderGastarbayter

Сообщений: 4
Оценки: 0
Присоединился: 2007-12-19 03:48:48.643333
вот что у меня получилось но не работает она правильно
#include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;math.h&gt; #include &lt;io.h&gt; #include &lt;conio.h&gt; int flength,length; char *str; void format(char *s) { char *w=(char*)malloc(flength),*wn=(char*)malloc(flength), *cw=(char*)malloc(flength); strset(w,0); strset(wn,0); strset(cw,0); w=strtok(s," "); wn=strtok(NULL," "); while (w!=NULL &amp;&amp; wn!=NULL){ if ((wn)&amp;&amp;(w)) { if (strlen(w)&lt;length){ strcat(*(text+curline),w); strcat(*(text+curline)," "); strcpy(cw,w); w=strtok(NULL," "); if (strlen(cw)+strlen(wn)&lt;length) {strcat(*(text+curline),wn);wn=strtok(NULL," ");strcat(*(text+curline)," ");if ((!wn)||(!w)) curline++;} else curline++;}}} } void format(char *s) { char *w=(char*)malloc(flength),*tmp=(char*)malloc(flength), *st=(char*)malloc(flength); strset(w,0); strset(tmp,0); strset(st,0); strcpy(st,s); if (strlen(s)&gt;length) { w=strtok(st," "); while (w!=NULL){ if (strlen(*(text+curline))+strlen(w)&lt;length){ strcat(*(text+curline),w); strcat(*(text+curline)," ");} else { strcat(tmp,*(text+curline+length-(s-w))); strcat(tmp,*(text+curline+1)); strcpy(*(text+curline+1),tmp); break;} w=strtok(NULL," ");}} char *spaces(char *s) { int count=0,sp=0; char *c=(char*)malloc(length); strset(c,0); strcpy(c,s); char *out=(char*)malloc(length); strset(out,0); char *w=(char*)malloc(length); strset(w,0); w=strtok(c," "); while (w!=NULL){ &nbsp;&nbsp; count++; &nbsp;&nbsp; w=strtok(NULL," ");} sp=(length-strlen(s))/(count-1); strset(c,0); strcpy(c,s); strset(w,0); w=strtok(c," "); while (w!=NULL){ &nbsp;&nbsp; strcat(out,w); &nbsp;&nbsp; for (int i=0;i&lt;sp;i++) strcat(out," "); &nbsp;&nbsp; w=strtok(NULL," "); &nbsp;&nbsp; if (!(w!=NULL)) {for (int i=0;i&lt;(length-strlen(out));i++) strcat(out," ");};} return out; } int main() { clrscr(); int i; printf("\néóÑñ¿ΓÑ ¬«½¿τÑßΓó« ß¿¼ó«½«ó ó ßΓ᫬Ñ:\n"); scanf("%d",&amp;length); FILE *f=fopen("text.txt","rt"); FILE *outf=fopen("out.txt","w+t"); flength=filelength(fileno(f)); str=(char*)malloc(flength); strset(str,0); char *st=(char*)malloc(flength); strset(st,0); char *s=(char*)malloc(flength); strset(s,0); while (feof(f)==0) { fgets(st,flength,f); strcat(str,st); if (strlen(str)&lt;length) { s=spaces(str);} fputs(s,outf);} fclose(outf); }
Post #: 5
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Задачка на си







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.