Показать сообщение отдельно

  #19  
Старый 19.07.2008, 22:37
siw
Новичок
Регистрация: 07.05.2007
Сообщений: 28
Провел на форуме:
171977

Репутация: 54
Отправить сообщение для siw с помощью ICQ
По умолчанию

Ты прав, тогда зайдем с другой стороны..
Код:
#include <stdio.h>
#include <string.h>

char *get_fstr(char *in, char div)
{
int i, j, start, end, skip, oc = 0;
char out[100];
for(i = 0; i < strlen(in); i++)
  {
    start = i;

    for(int j = 0; i + j < strlen(in); j++)
      {
        if(in[i + j] == div || i + j + 1 == strlen(in))
          {
            end = i + j;
            break;
          }
        if((in[i + j] > 64 && in[i + j] < 91) || (in[i + j] > 96 && in[i + j] < 123)) skip = 1;
      }

    if(start == end) skip = 1;

    if(!skip) for(int j = start; j <= end; j++, oc++) out[oc] = in[j];
    skip = 0;
    i = end;
  }
out[oc] = 0;
return out;
}

void main()
  {
    FILE *fpin, *fpout;
    if((fpin = fopen("input.txt", "r")) == NULL) return;
    if((fpout = fopen("output.txt", "w")) == NULL) return;

    char in[100];
    
    while(fgets(in, 100, fpin)) fputs(get_fstr(in, ':'), fpout);

    fclose(fpin);
    fclose(fpout);
  }
Кроме пропуска блоков с буквами, игнорирует пустые блоки( :: )
Вот пример работы
input.txt

la:la13:11:133:0.00:7:10288:cf:5658:45h456:78
bla!b13:0:1008:0.87:0:13154:77::97

output.txt

11:133:0.00:7:10288:5658:78
0:1008:0.87:0:13154:77:97
 
Ответить с цитированием