Форум программистов, компьютерный форум CyberForum.ru

Реализовать функции для вставки и удаления строк - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
parfesha
 Аватар для parfesha
0 / 0 / 0
Регистрация: 10.10.2008
Сообщений: 18
21.12.2008, 19:21     Реализовать функции для вставки и удаления строк #1
задание звучит так:
Реализовать функции для вставки и удаления строк аналогичные процедурам Insert и Delete в Турбо-Паскале
я сделала ее так:
Код
#include <vcl.h>
#include <iostream.h>
#pragma hdrstop
#include<conio.h>
#include<stdio.h>
#include <string.h>
//---------------------------------------------------------------------------

#pragma argsused
 char udalenie(char l[20],int m,int k)
   { int i,j,b,t,y,d;
     int q=strlen(l);
     q=q-m;
    for (i=k-1 ; i<q; i++)
      {l[i]=l[i+m];
       }
    l[q]='\0';
    for(i=0;i<q;i++)
      cout <<l[i];
    return 0;
   };
 char  vstavka(char s[10],char p[10],char l[20],int k)
    {int i,j,b,t,y,d,m,q;
     t=strlen(s);
     y=strlen(p);
     q=t+y;
     i=0;
     j=0;
     while (i<=q)
     {if (i<k) {l[i]=s[i];b=i;}
       else
         if ((k<=i) && (j<y)) {l[i-1]=p[j];j=j+1;}
          else
             {l[i-1]=s[b-1];b=b+1;};
     i++;
    };
    l[q]='\0';
    for(i=0;i<=q;i++)
      cout<<l[i];
    cout <<" "<<endl;
    return 0;
    };
 int main()
 {char s[10],p[10],l[20];
  int i,j,k,b,t,y,q,d,m;
  cout<<"vvedite strocy : ";
  cin>>s;
  cout<<"vvedite strocy vstavki: ";
  cin>>p;
  cout <<"Vvedite poziciu vstavki: ";
  cin>>k;
  vstavka(s,p,l,k);
  cout<<"vvedite col-vo udaliemih elementov: ";
  cin >>m;
  cout<<"vvedite posichiy udalenia: ";
  cin>>k;
  udalenie(l,m,k);
  getch();
  
 return 0;
}
но мне сказали ее переделать, сделать динамически....помогите
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2008, 19:21     Реализовать функции для вставки и удаления строк
Посмотрите здесь:

1. Реализовать функции для вставки и удаления строк аналогичные процедурам Insert и Delete в Турбо-Паскале. C++
C++ Реализовать класс для работы с одномерными массивами указателей строк
C++ Реализовать очередь с операциями вставки и удаления элементов
Задача сформировать массив строк и реализовать функции определения количества слов C++
C++ Односвязные списки. Реализовать функцию для удаления строчки из структуры по заданному номеру
Реализовать диалог для вычисления значения функции C++
C++ Скорость вставки и удаления в Std::list
Реализовать функции для BigInt C++
Эффективные алгоритмы вставки и удаления элемента из массива C++
Выбор структуры данных для вставки, удаления и поиска минимума за log(n) C++
C++ Создать очередь, написать функции для добавления/удаления элементов
C++ Реализовать алгоритм простой вставки через двусвязный список

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
parfesha
 Аватар для parfesha
0 / 0 / 0
Регистрация: 10.10.2008
Сообщений: 18
08.01.2009, 21:46  [ТС]     Реализовать функции для вставки и удаления строк #2
И что никто не знает как мне помочь, или никто не хочет???

Добавлено через 14 минут 57 секунд
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
08.01.2009, 23:46     Реализовать функции для вставки и удаления строк #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
#define asize(a)  (sizeof (a) / sizeof (a)[0])   /* вычисляет длину массива */
#define MAXLINE  1000   /* максимальная длина строки */
 
/* показывает функции для вставки и удаления строк */
main()
{
    char *lineinsert(char *, unsigned, const char *, unsigned);
    void linedelete(char *, unsigned, unsigned);
    char line[MAXLINE] = "one two three";
    
    printf("%s\n", line);
    linedelete(line, 4, 3);
    if (lineinsert(line, asize(line), "four", 4) != NULL)
        printf("%s\n", line);
    return 0;
}
 
/* lineinsert:  вставляет в строку sb длиной не более maxlen
                строку si с позиции origin */
char *lineinsert(char *sb, unsigned maxlen, const char *si, unsigned origin)
{
    char *p;
    unsigned lensb = strlen(sb), lensi = strlen(si);
    
    if (maxlen < lensb+lensi+1
     || (p = (char *) malloc(maxlen*sizeof(char))) == NULL)
        return NULL;
    sprintf(p, "%.*s%s%s", origin, sb, si, sb+origin);
    sprintf(sb, "%s", p);
    free((void *) p);
    return sb;
}
 
/* linedelete:  удаляет из строки s, с позиции origin, n символов */
void linedelete(char *s, unsigned origin, unsigned n)
{
    char *p;
    unsigned len = strlen(s);
    
    if (len < origin+n)
        return;    
    for (p = s+origin; (*p = *(p+n)) != '\0'; p++)
        ;
}
Yandex
Объявления
08.01.2009, 23:46     Реализовать функции для вставки и удаления строк
Ответ Создать тему
Опции темы

Текущее время: 04:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru