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

работа с массивом строк - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализовать заданный алгоритм в виде параметризованной функции http://www.cyberforum.ru/cpp-beginners/thread699994.html
Реализовать заданный алгоритм в виде параметризованной функции (шаблона функции). Протестировать написанную функцию на использование различных типов данных. Мой вариант: Алгоритм выполняющий сортировку части массива. Задание выполнить не используя явные задания индексов в качестве параметров.
C++ методы получения значений полей и методы установки значений полей Во всех заданиях реализовать вывод на экран, методы получения значений полей и методы установки значений полей, а также необходимые конструкторы (если это не указано в задании явно ). Конструкторы и методы обязательно должны проверять параметры на допустимость; в случае неправильных данных — выводить сообщение об ошибке и заканчивать работу. Преобразование в строку реализовать в виде функции... http://www.cyberforum.ru/cpp-beginners/thread699993.html
C++ Реализовать конструктор инициализации
Во всех заданиях необходимо реализовать конструктор инициализации (один или несколько) и конструктор без аргументов. Указанные в задании операции реализуются по средством перегрузки подходящих операций. Во всех заданиях обязательно должны быть реализованы соответствующие операции с присваиванием, ввод с клавиатуры, вывод на экран, преобразования в строку toString. Также надо реализовать операции...
Сортировка пузырьком, в чем ошибка C++
Доброго времени суток. Язык изучаю недолго. В данном мне задании нужно, помимо прочего, применить сортировку массива. В материале, который мне дан для выполнения задания, нет примеров кода, а только теоретический материал - в общих чертах описаны несколько принципов реализации сортировки. То есть как их реализовать я должен дойти сам, что вполне оправдано для обучения, и чем я добросовестно и...
C++ как остановить цикл ? http://www.cyberforum.ru/cpp-beginners/thread699962.html
у меня есть цикл : do{ cout<<"vvedite celoe chislo: "<<endl; cin>>a; for(i=0; i<47; i++) if (a%mas==0) cout<<"prostie mnozhiteli chisla a: "<<mas<<endl; }while(...);
C++ Разбить целое число на простые множители с помощью рекурсивного алгоритма Мне нужно разбить целое число на простые множители, этот алгоритм должен быть обязательно рекурсивным.. Помогите пожалуйста. подробнее

Показать сообщение отдельно
Ded_Vasilij
231 / 213 / 15
Регистрация: 01.09.2012
Сообщений: 2,103

работа с массивом строк - C++

17.11.2012, 06:48. Просмотров 466. Ответов 0
Метки (Все метки)

задача: На входе массив строк и его длина. Каждая строка имеет вид:
Фамилия Имя Отчество
(разделяются одним пробелом). Функция должна возвращать новый массив, состоящий из строк вида И.О. Фамилия.
Проблема: Ввод массива. Вылетает, и ругается страшно после попытки ввода первой же строки
код:
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include "stdafx.h"
#include <iostream>
#include <string.h>
using namespace std;
 
 
/*На входе массив строк и его длина. 
Каждая строка имеет вид:
Фамилия Имя Отчество
(разделяются одним пробелом).
Функция должна возвращать новый массив, состоящий из строк вида И.О. Фамилия.
*/
void del_mem(char** text, int n)            //освобождение памяти
{
    for (int i = 0; i < n; i++)
    {
        delete[] text[i];
    }
    delete[] text;
}
char** new_mem(int n)                   //выделяем память под массив строк
{
    char** text = new char*[n];
    int i = 0;
    try
    {
        for(; i < n; i++)
        {
            text[i] = new char[255];
        }
    }
    catch(bad_alloc e)
    {
        del_mem(text,i);
        throw;
    }
    return text;
}
 
void cin_text(char** text, int n)       //заполнение массива
{
    for (int i = 0; i < n; i++)
    {
        cin.getline(text[i],255);
    }
    
}
int copysubstr(char* str, char* rez, int x1,int x2, int i)
{
    for(int j = x1; j < x2; i++,j++)
    {
        rez[i] = str[j];
    }   
    return i;
}
char* swap(char* str)
{
    
    int fe = 0;
    for(; str[fe] != ' ' && str[fe] != 0; fe++);                          
    cout << "fe = " << fe << endl;
    char* rez = new char[fe+6];
    int sb = fe+2;
    cout << "sb = " << sb << endl;
    int se = sb;
    for(; str[se] != ' '; se++);
    cout << "se = " << se << endl;
    int kb = se + 2;
    cout << "kb = " << kb << endl;
    int ke = 0;
    for(ke = kb;  str[ke] != 0; ke++);
    cout << "ke = " << ke << endl;
    int i = 0;
    i = copysubstr(str,rez,sb-1,sb,i);  
    rez[i] = '.';   
    i++;
    i = copysubstr(str,rez,kb-1,kb,i);
    rez[i] = '.';
    i++;
    rez[i] = ' ';
    i++;
    i = copysubstr(str,rez,0,fe,i);
    rez[i] = 0;
    return rez;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(0,"rus");
    int n = 0;
    cout << "Введите количество строк" << endl;
    cin >> n;
    char**text;
    new_mem(n);
    cin_text(text,n);
    char ins[255];
    cin.getline(ins,255);   
    system ("pause");
    return 0;
}
Добавлено через 15 минут
вопрос глупый сам понял разобрался
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru