
19.07.2008, 22:37
|
|
Новичок
Регистрация: 07.05.2007
Сообщений: 28
Провел на форуме: 171977
Репутация:
54
|
|
Ты прав, тогда зайдем с другой стороны..
Код:
#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
|
|
|