Re: Паттерны на Си, надо выкусить нормальные слова из мусора
От: e-Xecutor Россия  
Дата: 06.08.03 06:53
Оценка: 34 (5)
Здравствуйте, Аноним, Вы писали:

А>Помогите написать паттерн для выкусывания текста из файла с мусором, может какой-нибудь более нормальный путь есть?


А>
А>int main(void)
А>{
А>   char *mtext="*p902X Privet 5?*p902XTest DCL Printing?*p2038X00C0A2050995?(19U?(s1p0s0b16901T?(s10V?&d@?INFO ";
А>   char  mItog[100]={0};

А>   sscanf(mtext,"[PATTERN]", &mItog); //iscntrl sprintf
А>   printf("%s",mItog);
А>   sleep(5);

А>


А>Спасибо


Так?

#include <stdio.h>
#include <string.h>

int main(int argc,char* argv[])
{
  char *mtext="*p902X Privet 5?*p902XTest DCL Printing?*p2038X00C0A2050995?(19U?(s1p0s0b16901T?(s10V?&d@?INFO ";
  int len=strlen(mtext);
  int n=0;
  char buf0[128];
  char buf1[128];
  while(n<len)
  {
    int i;
    sscanf(mtext+n,"%[^a-zA-Z0-9 ]%[a-zA-Z0-9 ]%n",buf0,buf1,&i);
    printf("%s\n",buf1);
    n+=i;
  }
  return 0;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.