Строки Символов

Тема в разделе "C/C++/C#", создана пользователем -, 25 дек 2012.

Статус темы:
Закрыта.
  1. Гость

    Здравствуйте!Помогите,пожалуйста,решить задачу.Зараннее спасибо.

    с клавиатуры задается произвольный текст, содержащий не более 5 строк, в каждой строке не более 80 символов.Вывести на экран строки, состоящие из заданного количества слов (количество задается с клавиатуры пользователем).

    Я сделала,но уменя выдает какую-то ошибку

    #include <iostream>
    #include <string.h>
    #include <windows.h>
    using namespace std;
    const int n=5, m=80;// Задание констант: n-размер массива,
    // m – максимальное количество символов строки

    // Функция ввода массива строк с клавиатуры. Возвращает реальное
    // количество строк, введенных пользователем
    int input_mas(char **mas, int n)
    //В функцию передается указатель на начало массива строк и максимально возможное количество строк
    {
    int k=0; // Переменная для хранения текущего номера строки
    char buf[m];
    while (k<n) // Пока число веденных строк меньше возможного
    {
    cin.getline(buf,m);//Считываем строку из консоли в буферную переменную
    OemToChar(buf,mas[k]);//Перевод в кодировку windows
    if ((strcmp(mas[k],"")==0)) break;
    // Если была введена пустая строка, выходим из цикла
    k++;//Если строка была непустая, продолжаем и увеличиваем k
    }
    if(strcmp(mas[k],"")==0) return k;// Если ввод был прерван //вводом пустой строки, то всего реально строк k – возвращаем
    else return k+1; //иначе введена k+1 строка (т.к. отсчет с 0)
    }

    void print_mas(char **mas, int n)// Функция вывода массива строк
    {
    cout<<"Введенный текст:"<<endl;
    for (int i=0; i<n; i++) // Распечатка в цикле строк массива
    cout<<mas<<endl;
    }

    //Функция вывода на экран строк, состоящих из заданного количества слов (количество задается с клавиатуры пользователем)
    void print_slovo(char **mas, int n)
    {
    int d=0;
    int k;
    cout<<"Введите количество слов:"<<k<<endl;
    // Переменная для хранения длины строки
    for (int i=0; i<n; i++) // Пробег по строкам массива
    {
    d=strlen(mas); // Вызов функции длины строки
    //Проверка условия – если последний символ i-ой строки = ’!’,
    // то выводим на экран данную строку
    if(mas[d]<=k)cout<<mas<<endl;
    }
    }

    void main() // Главная функция
    {
    setlocale(LC_ALL,"");
    char **mas; // Динамический двумерный массив символов
    mas=new char *[n];//Выделение места в памяти под n указателей на //начало строк
    // Выделение места в памяти под m символов для каждой строки
    for (int i=0; i<n; i++) mas=new char [m];
    cout<<"Введите массив строк"<<endl;
    int k=input_mas(mas,n); //Вызов функции ввода массива строк
    print_mas(mas,k); // Вызов функции вывода массива строк
    print_slovo(mas,k); // Вызов функции вывода
    for (int i=0; i<n; i++) delete [] mas;// Освобождение памяти
    delete [] mas;
    }
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей