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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2015, 18:52   #1
Ved
Новичок
Джуниор
 
Регистрация: 17.06.2015
Сообщений: 5
Вопрос Помочь с написанием кода

Составить программу обработки массива символов, которая вводит текст из произвольного количества строк, а затем отбирает в отдельный текст строки, длина которых превышает заданную, и выводит полученный результат. Обработку строки текста оформить как функцию.

Буду благодарен за помощь.
Ved вне форума Ответить с цитированием
Старый 17.06.2015, 19:36   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Могу предложить наработку в качестве намека, как действовать: http://www.programmersforum.ru/showthread.php?t=106568
Или вот: http://www.programmersforum.ru/showthread.php?t=91677
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.06.2015, 21:42   #3
Ved
Новичок
Джуниор
 
Регистрация: 17.06.2015
Сообщений: 5
По умолчанию

У меня тут кое что не получается...
Я к примеру задаю количество строк, которое хочу ввести, но не могу поставить условие так, чтобы он понимал, когда вводится последняя. Выходит бесконечный ввод строк.

Вот код и я думаю, что что-то намудрил)
Код:
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
	char text[200];
	int n;
	setlocale(LC_ALL, "Russian");
	cout << "Введите количество строк: ";
	cin >> n;
	for (int i = 0; i<n; i++)
	cout << "Введите текст: ";
	cin.get(text, 200, '$');
	return 0;
}
void w(char *text, int n)
{
	int i = 0, sk = 0;
	char tmp[100];
	while (text[i] != '\0')
	{
		while (text[i] != ' ' && text[i] != '\0')
		{
			tmp[sk] = text[i];
			i++;
			sk++;
		}
		if (sk == n)
			cout << tmp << endl;
		sk = 0;
		tmp[0] = '\0';
		i++;
	}

}
Исправьте пожалуйста, если знаете в чем дело...
Ved вне форума Ответить с цитированием
Старый 17.06.2015, 21:48   #4
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Ved Посмотреть сообщение
Исправьте пожалуйста, если знаете в чем дело...
А Вы мне поставите ванну, переставите канализационные трубы и выложит плитку в ванной, за то время, которое я на Вас потрачу (для справки, всё уже куплено).
Естественно, это была шутка. Хоть строку дайте, где предполагается ошибка.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 17.06.2015, 21:48   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Как-то непонятно твой пример выглядит... В моем представлении он хотя бы так должен быть:
Код:
#include <iostream>
#include <stdio.h>
#include <string.h>

using namespace std;

	char text[200], *res=0;
	int n,k=20;

void w(char *text, int n)
{
 if(strlen(text)>n) {
  res=strcat(res,text);
  res=strcat(res," ");
 }
 
}

int main()
{

	setlocale(LC_ALL, "Russian");
	cout << "Введите Длину строк: ";	cin >> k;
	cout << "Введите количество строк: ";	cin >> n;
	for (int i = 0; i<n; i++) {
 	 cout << "Введите текст: ";
	 cin.get(text, 200, 0);
         w(&text,k)
        }
        cin<<res; cin.get();
	return 0;
}
Надеюсь понятно, что это с потолка?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.06.2015, 22:42   #6
Ved
Новичок
Джуниор
 
Регистрация: 17.06.2015
Сообщений: 5
По умолчанию

Спасибо.
Но у меня по-прежнему не выводит текст,согласно условиям =/
Ved вне форума Ответить с цитированием
Старый 17.06.2015, 23:56   #7
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Ved Посмотреть сообщение
Спасибо.
Но у меня по-прежнему не выводит текст,согласно условиям =/
Да, блин! Покажи строку!, где выбивает ошибку. Иначе, ща материться начну и опять забанят. Достали............................ ................................... ................................... ................................... ................................... ................................... ................................... ................................... ...........................своими непониманиями. В магазинах, в справочниках, столько инфы И вы инэте! И всё равно - "Как, как, как", да, каком к верху.
Вас, блин думать научить?
Первый ответ: Я знаю, где ты скоп....пировал этот код, Пренобразовть, "тямы" нет.Куда ты лезешь......................
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 18.06.2015 в 00:04.
Smitt&Wesson вне форума Ответить с цитированием
Старый 18.06.2015, 07:56   #8
Ved
Новичок
Джуниор
 
Регистрация: 17.06.2015
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Да, блин! Покажи строку!, где выбивает ошибку. Иначе, ща материться начну и опять забанят. Достали............................ ................................... ................................... ................................... ................................... ................................... ................................... ................................... ...........................своими непониманиями. В магазинах, в справочниках, столько инфы И вы инэте! И всё равно - "Как, как, как", да, каком к верху.
Вас, блин думать научить?
Первый ответ: Я знаю, где ты скоп....пировал этот код, Пренобразовть, "тямы" нет.Куда ты лезешь......................
Ошибки как раз-таки нет,но он все равно вводит бесконечное количество строк.
А код я использовал этот:
Цитата:
Сообщение от Stilet Посмотреть сообщение
Как-то непонятно твой пример выглядит... В моем представлении он хотя бы так должен быть:
Код:
#include <iostream>
#include <stdio.h>
#include <string.h>

using namespace std;

char text[200], *res = 0;
int n, k = 20;

void w(char *text, int n)
{
	if (strlen(text)>n) {
		res = strcat(res, text);
		res = strcat(res, " ");
	}

}

int main()
{

	setlocale(LC_ALL, "Russian");
	cout << "Введите Длину строк: ";
	cin >> k;
	cout << "Введите количество строк: ";
	cin >> n;
	for (int i = 0; i<n; i++) {
		cout << "Введите текст: ";
		cin.get(text, 200, 0);
		w(&text, k);
	}
	cout << res; cin.get();
	return 0;
}
Надеюсь понятно, что это с потолка?

Последний раз редактировалось Ved; 18.06.2015 в 08:05.
Ved вне форума Ответить с цитированием
Старый 18.06.2015, 09:31   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
// 66.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <string>

using namespace std;

string text, res = "";
int n, k = 20;

void w(string s, int n)
{
	if(s.length()>n) res+=s+" ";

}

int _tmain(int argc, _TCHAR* argv[])
{
	setlocale(LC_ALL, "Russian");
	cout << "Введите Длину строк: ";
	k=2;
	cout << "Введите количество строк: ";
	n=3;
	for (int i = 0; i<n; i++) {
		cout << "Введите текст: ";
		getline(cin,text);
		w(text, k);
	}
	cout << res; cin.get();
	
	return 0;
}
Так лучше?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.06.2015, 12:36   #10
Ved
Новичок
Джуниор
 
Регистрация: 17.06.2015
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
// 66.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <string>

using namespace std;

string text, res = "";
int n, k = 20;

void w(string s, int n)
{
	if(s.length()>n) res+=s+" ";

}

int _tmain(int argc, _TCHAR* argv[])
{
	setlocale(LC_ALL, "Russian");
	cout << "Введите Длину строк: ";
	k=2;
	cout << "Введите количество строк: ";
	n=3;
	for (int i = 0; i<n; i++) {
		cout << "Введите текст: ";
		getline(cin,text);
		w(text, k);
	}
	cout << res; cin.get();
	
	return 0;
}
Так лучше?
Спасибо огромное за помощь
Ved вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу помочь с написанием программы на Паскаль Distwee Помощь студентам 1 04.12.2014 14:01
Огромная просьба помочь с написанием небольшого макроса ds_nn Microsoft Office Excel 14 06.08.2010 01:04
MulCer можешь пожалуйста помочь с написанием программы?(если необходимо то с финансовой поддержкой) Goenich Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 03.06.2009 05:59
Помогите с написанием кода! Al3x Общие вопросы C/C++ 2 09.04.2009 19:51