Форум: Форум C++Разное
Новые темы: 00
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Динамич выделение памяти под строки и траблы с ним

Сообщения:  [1-3] 

 
 автор: zzDimazz   (02.01.2008 в 11:06)   письмо автору
 
   для: alex19921992   (02.01.2008 в 10:02)
 

1)c4ca4238a0b923820dcc509a6f75849b
2)c81e728d9d4c2f636f067f89cc14862c
3)eccbc87e4b5ce2fe28308fd9f2a7baf3
4)a87ff679a2f3e71d9181a67b7542122c
5)e4da3b7fbbce2345d7772b0674a318d5
6)1679091c5a880faf6fb5e6087eb1b2dc
7)8f14e45fceea167a5a36dedd4bea2543

Это так файл выглядит
а теперь я должен все строки засунуть в массив!

  Ответить  
 
 автор: alex19921992   (02.01.2008 в 10:02)   письмо автору
 
   для: zzDimazz   (02.01.2008 в 06:46)
 

немного не понимаю, зачем тебе 2мерный массив?
и какие тут строкИ, когда тут одна строка?

  Ответить  
 
 автор: zzDimazz   (02.01.2008 в 06:46)   письмо автору
 
 

Вот имеется файл с текстом :
А5S1R2G8FMMD4E32
программа его преобразует в :
ASSSSSRGGFFFFFFFFMMDEE22
короче смысл в том что символ перед которым нет цифри пишеться как есть а тот перед которым цифра n(0..9) повторяется n раз!
вот я и сделал это теоритически но плин практически трабл какой то
я считал кол-во строк и символов в строке и выделял под каждый символ память а обратиться скажем к символу немогу типа str[ j ][ j ] немогу, думаю проблема именно в этом
PS дайте пожалуйста линки и еще какие нибудь информаионные сведения про строки в Си
есть у кого РУССКИЙ ХЕЛП для Turbo C++ v 3.1
был бы признателен!
код :

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

//Функция определения числа от 0-9

int isnum(char **s,int i,int j,int ln)
{
if (
(*(*s+j*ln+i)=='0')|(*(*s+j*ln+i)=='1')|(*(*s+j*ln+i)=='2')|(*(*s+j*ln+i)=='3')|(*(*s+j*ln+i)=='4')
|(*(*s+j*ln+i)=='5')|(*(*s+j*ln+i)=='6')|(*(*s+j*ln+i)=='7')|(*(*s+j*ln+i)=='8')|(*(*s+j*ln+i)=='9')
   ) return 1;
else return 0;

}


////////////////////////////////////////////

void main()
 {
  char *buffer[255];
  char *s,ch;
  int *a,i=0,j=0,m,n=0,cs=0,k,ln;
  FILE *f;
  
clrscr();


f=fopen("C:\\files_l6\\l6.txt","rt");
if (f==NULL)                                                                                                                                     
{
perror("\t ERROR:/n/tFile not exist!");
exit(1);
}
else
printf("\nOpened sucesfully!!!\n\n");


   //scan the file!
   while(!feof(f))
   {
   n++; //count of symbols
   if(fgetc(f)=='\n') i++; //calculating the lines
   }
   printf("Symbols = %d\n",n);
  
   ln=i;
   i=0;
   printf("strok = %d (0 - %d)\n",ln+1,ln);
s = (char*)malloc(ln*sizeof(char)); //making memory (lines - ln )
a = (int*)malloc(ln*sizeof(int)); //massiv of line length
fseek(f,SEEK_SET,0);//putting cursor in the begining of the file
while(!feof(f))
{

cs++; // count of symbols in 1 line
ch=fgetc(f);
if (ch=='\n')
{
s[i] = (char*)malloc(i*(cs)*sizeof(char));
i++;
a[i] = cs;//
printf("| end of line %d symbols = %d+1(\\n) \n",i,a[i]);

cs=0;

}
putch(ch);

}
i=0;
printf("| end of file  on line %d symbols = %d +1(EOF)\n",ln+1,cs-1);

fseek(f,SEEK_SET,0);//putting cursor in the begining of the file


// grabb the liness into strings[i]

while(!feof(f))
{

fgets(&s[i],a[i],f);
printf("%s",&s[i]);
i++;
}



//for(i=0;i<ln;i++)
printf("//%d \n",isnum(&s,0,0,ln));
//printf("!%s!\n",&s[1][1]);
//////////////////////////////////////////////////////
///////////        MAIN PART       ///////////////////
//////////////////////////////////////////////////////

for(j=0;j<ln;j++)
        {
i=0;m=0;
while(i<a[ln])
{
ifisnum(&s,j,i,ln) )
{
for(k=0;k< int(*(s+j*ln+i));k++)
{
*buffer[m]=*(s+j*ln+i+1);
m++;
}
i+=2;
}
else
{
*buffer[m]=*(s+j*ln+i);
m++;
i++;

}
}
//
buffer[m]='\0';
printf("%s\n",&buffer);

}





//////////////////////////////////////////////////////
///////////        ENDS PART       ///////////////////
//////////////////////////////////////////////////////

fclose(f);

for(i=0;i<ln;i++)
free(&s[i]);

free(s);


 getch();
}


Я пользуюсь Turbo C++ v 3.1!
заранее спасибо[

  Ответить  

Сообщения:  [1-3] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования