Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Болталка (https://forum.antichat.xyz/forumdisplay.php?f=46)
-   -   помогите написать прогу на СИ. (https://forum.antichat.xyz/showthread.php?t=11630)

k1b0rg 11.12.2005 17:38

помогите написать прогу на СИ.
 
вот собственно говоря сабж, нужна прога на СИ, именно на СИ, на других языках бы я бы написал, но Си я плохо знаю. Кто знает СИ, прошу помочь! ))
Цитата:

Задана фраза-последовательность содержащая от 1 до 30 слов, в каждом из которых от 1 до 10 строчных латинских букв;между соседними словами - запятая ,за последним словом точка. Напечатать все слова, которые встречаються в последовательности по одному разу.
Программа должна читать текст из файла input.txt и выводить последовательность в файл output.txt

qBiN 11.12.2005 18:03

Нихера не понял что надо)))) Наверно потому что ты не привел пример файла input.txt , а вдумываться в задачу не хочется...
Вопще в чем проблема?? что уже сделал то?

k1b0rg 11.12.2005 18:09

вот смотри в input.txt должна будет содержаться типа примерно такой фразы
helloy,i,m,from,russia.
слова разделены запятой.Всего строка может содержать от 1 до 30 слов, в слове может быть от 1 до10 строчных латинских букв. НАписать неповторяющиеся слова. На php я писал так, загонял в массив (по разделению "," )типа explode($string,",");
а дальше сравнивал элементы массива, если повторяються ,тогда удалял повторения, если нет оставлял, в конечном ввиде ввыводил массив

madnet 12.12.2005 03:46

Вот набросал тебе небольшой код со скуки, сильно не тестил, но вроде работает правильно.

Код:

#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <windows.h>
void checkmass(char *mass[255],int len);
void checkmass(char *mass[255],int len)
{
int a,b;
char test[255];
strcpy(test,mass[0]);
 for(a=1;a<len;a++)
 { 
  for(b=a;b<len;b++)
  {
          if (strcmp(mass[b],test)==0) {mass[b]="";}
  }
  strcpy(test,mass[a]);
 }
}
int main(void)
{
 FILE *filetoread,*filetosave;
 char str[255]="",*rfile,*sfile,*mass[255];
 int couner=0,a=0;
 system("cls");
 printf("**************************************\n");
 printf("*        coded by madnet            *\n");
 printf("*          12.12.2005              *\n");
 printf("**************************************\n\n");
 rfile = "input.txt";
 sfile = "output.txt";
 if ((filetoread = fopen(rfile,"r")) == NULL)
 {
  printf("ERROR: file input.txt not exists");
  getch();
  return(0);
 }
 else
 {
  if (fgets(str,255,filetoread))
  {
  fclose(filetoread);
  str[strlen(str)-1]=',';
  mass[0]=strtok(str,",");
  while (mass[couner] != NULL)
  {
    couner++;
    mass[couner]=strtok(NULL,",");
  }
  checkmass(mass,couner);
  if ((filetosave = fopen(sfile,"w")) != NULL)
  {
    for(a=0;a<couner;a++)
    {
            if (mass[a]!="")
                {
            fputs(mass[a],filetosave);
                fputs("\n",filetosave);
                }
    } 
    fclose(filetosave);
  }
  }
 printf("work finished");
 getch();
 }
}



Время: 10:50