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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2011, 20:20   #11
malinoff
Форумчанин
 
Аватар для malinoff
 
Регистрация: 08.01.2010
Сообщений: 205
По умолчанию

Цитата:
Сообщение от Alinko-malinko Посмотреть сообщение
malinoff

можете привести пример как сделать эту часть? Из пар по Си я вынесла следующую инфу: сначала выделяешь память под указатель (по сути), а потом по нему из каких-то соображений выделяешь память под вполне определённый массив, его размеры можно вводить по ходу выполнения кода. Так вот, если нет никаких ограничений на количество слов, то какой же размер вводить?
Просьба не улыбаться снисходительно, а подтвердить слова делом....
Масса вариантов. Спросить у пользователя количество слов, побуквенно считывать слова и считать количество букв, но, конечно, лучше всего использовать буферный ввод То есть вводить данные в какой-то определенный буфер, при заполнении выделять память и записывать в нужный массив, опустошать буфер и заново его заполнять. Повторять до окончания ввода.
Если помог - кликни на значок весов под аватаром.
malinoff вне форума Ответить с цитированием
Старый 14.04.2011, 20:21   #12
Alinko-malinko
Новичок
Джуниор
 
Регистрация: 14.04.2011
Сообщений: 9
Радость

Цитата:
Сообщение от Son Of Pain Посмотреть сообщение
Можно, например, выделить массив для 1000 слов; если не хватит - использовать функцию realloc для выделения большего количества.
Спасибо за ответ, но уж очень сильно хочется узнать как тут помогут динамические массивы, может у того узера какой-то супер - код имеется?)
Думаю, он будет полезен многим)
Alinko-malinko вне форума Ответить с цитированием
Старый 14.04.2011, 20:37   #13
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

А вообще, раз уж в заголовке темы написано "c++",

Код:
#include <clocale>
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
using namespace std;
void main() {
   setlocale(LC_ALL,"rus");
   cout<<"Введите строку: ";
   string s;
   getline(cin, s);
   vector<string> words;
   stringstream ss(s);
   while (ss>>s) words.push_back(s);
   cout<<"Количество слов во введенной строке: "<<words.size()<<endl<<" Введите номер слова: ";
   int i;
   cin>>i;
   cout<<words[i-1]<<endl;
}
Son Of Pain вне форума Ответить с цитированием
Старый 14.04.2011, 20:49   #14
Alinko-malinko
Новичок
Джуниор
 
Регистрация: 14.04.2011
Сообщений: 9
По умолчанию

Цитата:
Сообщение от malinoff Посмотреть сообщение
Масса вариантов. Спросить у пользователя количество слов, побуквенно считывать слова и считать количество букв, но, конечно, лучше всего использовать буферный ввод То есть вводить данные в какой-то определенный буфер, при заполнении выделять память и записывать в нужный массив, опустошать буфер и заново его заполнять. Повторять до окончания ввода.
да, краткая версия написанного : давайте усложним прогу для 1-го курса в 3 раза. Спасибо за исчерпывающий ответ
Alinko-malinko вне форума Ответить с цитированием
Старый 14.04.2011, 21:22   #15
Alinko-malinko
Новичок
Джуниор
 
Регистрация: 14.04.2011
Сообщений: 9
По умолчанию

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <iostream>
#include <locale.h>
using namespace std;
int _tmain()
{ setlocale(LC_ALL,"rus");
char s[255];

cout<<"Введите строку: ";
gets(s);
int k,i,n;
cout<<"Введите номер искомого слова ";
sin>> n;
k=1;
for(i=0;i<strlen(s)-1;i++)
if(s(i)==' ')
{
k++;
if(k==n){cout<<"искомое слово "<< endl;
cout<<s(i); }
}
return 0;
}
у меня получилось что-то вроде этого, не компилировала(нечем).
Alinko-malinko вне форума Ответить с цитированием
Старый 14.04.2011, 21:25   #16
Alinko-malinko
Новичок
Джуниор
 
Регистрация: 14.04.2011
Сообщений: 9
По умолчанию

Novichel, мне интересно, а зачем столько библиотек?
Alinko-malinko вне форума Ответить с цитированием
Старый 14.04.2011, 22:18   #17
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Цитата:
Сообщение от Alinko-malinko Посмотреть сообщение
у меня получилось что-то вроде этого, не компилировала(нечем).
1) Несколько пробелов подряд будут считаться как несколько разных слов;
2) Массивы индексируются квадратными скобками всегда ;
3) Этот код не выведет слово на экран.
Son Of Pain вне форума Ответить с цитированием
Старый 15.04.2011, 07:52   #18
malinoff
Форумчанин
 
Аватар для malinoff
 
Регистрация: 08.01.2010
Сообщений: 205
По умолчанию

Цитата:
Сообщение от Alinko-malinko Посмотреть сообщение
да, краткая версия написанного : давайте усложним прогу для 1-го курса в 3 раза. Спасибо за исчерпывающий ответ
Я на втором курсе, не вижу сильных различий между первым и вторым. Ну, хотите хранить огромные излишки памяти - ваше право
Или используйте string, выше пример уже дан.
Если помог - кликни на значок весов под аватаром.
malinoff вне форума Ответить с цитированием
Старый 15.04.2011, 08:00   #19
Novichel
 
Регистрация: 08.03.2011
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Son Of Pain Посмотреть сообщение

Код:
#include <clocale>
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
using namespace std;
void main() {
   setlocale(LC_ALL,"rus");
   cout<<"Введите строку: ";
   string s;
   getline(cin, s);
   vector<string> words;
   stringstream ss(s);
   while (ss>>s) words.push_back(s);
   cout<<"Количество слов во введенной строке: "<<words.size()<<endl<<" Введите номер слова: ";
   int i;
   cin>>i;
   cout<<words[i-1]<<endl;
}
Можете мне объяснить код, а то я впервые такое вижу...
Novichel вне форума Ответить с цитированием
Старый 15.04.2011, 08:44   #20
malinoff
Форумчанин
 
Аватар для malinoff
 
Регистрация: 08.01.2010
Сообщений: 205
По умолчанию

Цитата:
Сообщение от Novichel Посмотреть сообщение
Можете мне объяснить код, а то я впервые такое вижу...
Что именно непонятно?
Если помог - кликни на значок весов под аватаром.
malinoff вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка текста C++ jack-fighter Помощь студентам 4 24.12.2010 23:56
Обработка текста DOC26 Помощь студентам 1 23.10.2010 13:25
Обработка текста JRcoker Общие вопросы Delphi 5 31.07.2008 23:35
обработка текста pvleo Фриланс 4 14.07.2008 05:19
Обработка текста GAGARIN-NEW Общие вопросы Delphi 7 06.10.2007 15:25