Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2009, 00:57   #1
FastDead2
Пользователь
 
Аватар для FastDead2
 
Регистрация: 09.05.2009
Сообщений: 12
Восклицание Работа со строками, C++

Задание вообщем такое:
Построить таблицу используемых в программе на языке Си имен переменных с учетом блочной структуры программы. Найденные имена заменить мнемоническими именами. Учитывать типы данных созданные с помощью typedef.

Вроде что-то написано, но работает не совсем верно:
Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
void main()
{char str1[20],str2[20];
char *p;
int i,k,n;
char *ch="=+/:;-! .,{}()";
char slova[20][20];
int sl=0;//schetchic slov
FILE *f;
int kol=0;
int nom=0;
int k1=0,k2=0,k3=0,k4=0,k5=0,k6=0,k7=0,k8=0,k9=0;
clrscr();

if ((f=fopen("transl.txt","r"))==NULL)
printf("OWIBKA OTKRITIYA FAYLA");
else {
   do  //nachalo cikla
{ strcpy(str1,"\0");
   fscanf(f,"%s",&str1); //otkririe fayla
//razbienie na slova
p=strtok(str1,ch);
while (p)
{sl++;
strcpy(slova[sl],p);
p=strtok(NULL,ch);
  }
}

while (!feof(f));//konec cikla


   for (i=0;i<sl;i++)
{
if (strcmp(slova[i],"typedef")==0)
  {
  strcpy(slova[i],slova[i+2]);
 }
}
   printf("\n");

 printf("\n|------------------------------------|\n");
 printf("\n| Mnemonicheskoe ima |   Tip dannih  |\n");
 printf("\n|------------------------------------|\n");

    kol=0;
    for (i=0;i<sl;i++)//poisk i vivod naydennih elementov

{
 if ((strcmp(slova[i],"int")==0)||(strcmp(slova[i],"char")==0)||(strcmp(slova[i],"float")==0)||
(strcmp(slova[i],"const")==0)||(strcmp(slova[i],"char*")==0)||(strcmp(slova[i],slova[i+2])==0)||
(strcmp(slova[i],"double")==0)||(strcmp(slova[i],"FILE")==0))

{
    if (strcmp(slova[i],"int")==0) { k1++; nom=1; if (k1==1)  printf("|%20d|%15s|\n", nom, slova[i+1]);}
    if (strcmp(slova[i],"char")==0){k2++; nom=2;    if (k2==1)  printf("|%20d|%15s|\n", nom, slova[i+1]); }
    if (strcmp(slova[i],"float")==0) { k3++; nom=3; if (k3==1)  printf("|%20d|%15s|\n", nom, slova[i+1]); }
    if (strcmp(slova[i],"const")==0) { k4++; nom=4;   if (k4==1)  printf("|%20d|%15s|\n", nom, slova[i+1]);}
    if (strcmp(slova[i],"char*")==0) {k6++; nom=5;   if (k5==1)  printf("|%20d|%15s|\n", nom, slova[i+1]);}
    if (strcmp(slova[i],"const")==0) {k7++; nom=6;  if (k6==1)  printf("|%20d|%15s|\n", nom, slova[i+1]); }
    if (strcmp(slova[i],"double")==0) {k8++; nom=7;  if (k7==1)  printf("|%20d|%15s|\n", nom, slova[i+1]);}
    if (strcmp(slova[i],"FILE")==0) {k9++; nom=8;   if (k8==1)  printf("|%20d|%15s|\n", nom, slova[i+1]);}
    if (strcmp(slova[i],slova[i+2])==0) {kol++; nom=8+kol;   printf("|%20d|%15s|\n", nom, slova[i+1]);}

 }

}
 printf("\n|------------------------------------|\n");
}


fclose(f);
getch();
}
в файле лежит что-то такое
Код:
typedef struct fakult;
typedef char* string;
fakult *first, *cur;
int num,ter;
string str,iop;
char d[20]; 
int p; 
printf("\nVvedite kolichestvo zapisey\n");
Очень нужна помощь, помогите пожалуста!!!)
FastDead2 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строками XSGRAFF Общие вопросы C/C++ 5 26.05.2009 00:47
Работа со строками NightFire Помощь студентам 4 22.03.2009 20:54
Работа со строками eR- Помощь студентам 2 23.02.2009 15:11
Работа со строками в С++ Алекс...))) Помощь студентам 1 04.02.2009 19:48
РАБОТА СО СТРОКАМИ kluwa Общие вопросы C/C++ 7 20.12.2007 18:30