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

  • Автор темы -
  • Дата начала
Статус
Закрыто для дальнейших ответов.

Гость
#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;
}
 
Статус
Закрыто для дальнейших ответов.