Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2011, 17:40   #1
Morfius01
Пользователь
 
Регистрация: 18.12.2010
Сообщений: 12
По умолчанию Запись фразы в массив и вывод на экран

Не получается выполнить задание, надеюсь не ошибся разделом, но вроде сюда писать. Собственно, нужно написать программу, в которой вводится фраза, фраза эта записывается в двухмерный массив, где одна строка - одно слово соответственно. Плюс чтобы выделялась память под все это дело. Выполнить нужно примерно следующим образом.
Основной код
Цитата:
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include "stdio.h"
#include "Vvod_stroki.h"
//#include "Preob_str"
#include "StrView.h"


int _tmain(int argc, _TCHAR* argv[])
{
//одно слово - одна строка в массиве
char **iStroka; //указатель на область памяти, отводимую под хранение элементов строки
int iStrSize; //длинна строки
int iWord; //кол-во строк (слов)

//ввод строки
Vvod_stroki(&iStroka, iStrSize, iWord);
//преобразование строки
//Preob_str(iMatrix, iStrSize, iWord);
//Вывод преобразованной строки на экран
StrView(iStroka, iStrSize, iWord);
getch();
return 0;
}
Функция ввода строки
Цитата:
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include "conio.h"
#include "stdio.h"

#include "Vvod_stroki.h"

void Vvod_stroki(char ***iStr,int &iSize,int &iW)
{
using namespace std;
/*
iStr - указатель на указатель на область памяти, содержащий строку
iSize - количество элементов в строке
iW-кол-во строк
*/
char fraza[1000];
int i,j,k;

cout<<"Vvedite stroku slov\n";
cin>>fraza;

//Найдем количество слов
iW=0;
for (k=0; k==strlen(fraza); k++)
{
if (fraza[k]==' ')
iW++;
}
//Найдем максимальную длинну слова
iSize=0;
for (k=0; k==strlen(fraza); k++)
{
j++;
if (fraza[k]==' ')
{if (j>iSize)
{
iSize=j;
j=0;
}
}
}

//выделяем память под указатель на строки матрицы (кол-во слов)
*iStr = new char *[iW];
//построчно выделяем память на элементы матрицы (буквы в каждом слове)
//i - счетчик строк (слов)
for (int i=0;i<iW; i++)
(*iStr)[i] = new char [iSize];

//теперь заполним матрицу словами
i=0;
j=0;
for (int k=0; k<strlen(fraza); k++)
{
(*iStr)[i][j] = fraza[k];
j++;
if (fraza[k]==' ')
{
i++;
j=0;
}
}

}
И ф-ия вывода на экран.
Цитата:
#include "stdafx.h"
#include <iostream>
#include "conio.h"
#include "stdio.h"

#include "StrView.h"

void StrView(char **iMassiv, const int iRazmer, const int iWords)
{
using namespace std;
cout<<"Novaya stroka:\n";

for (int i=0; i<iWords;i++)
{
for (int j=0; j<iRazmer; j++)
{
cout << iMassiv[i][j];
}
cout << ' ';
}

}
Программа запускается, но после нажатия Enter после ввода строки - рушится с ошибкой. Не могу понять в чем фейл, надеюсь на вашу помощь.
Morfius01 вне форума Ответить с цитированием
Старый 27.05.2011, 00:29   #2
Alex071
Пользователь
 
Аватар для Alex071
 
Регистрация: 26.05.2011
Сообщений: 19
По умолчанию

А на какой строке то хоть останавливается?
Alex071 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывод на экран Nikolai_90 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 11 02.05.2012 09:25
Вывод на экран tools Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 01.12.2009 22:26
Вывод на экран Timpi Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 30.11.2009 18:05
Вывод на экран Rifler Паскаль, Turbo Pascal, PascalABC.NET 10 18.07.2008 18:30
Вывод на 2-ой экран DShiller Общие вопросы Delphi 0 26.05.2008 15:25