Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Zakh
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 3
#1

Создать процедуру/функцию SubWord(s,n,l),которая реализует выделение из строки s l слов, начиная от слова номер n - C++

06.11.2012, 22:01. Просмотров 839. Ответов 4
Метки нет (Все метки)

Работа со строками.Создать процедуру/функцию SubWord(s,n,l),которая реализует выделение из строки s l слов, начиная от слова номер n на С++.
Есть код,который нужно доредактировать(проблема в векторе):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
 
 
void SubWord(std::string &s, int n, int l)
{
    std::istringstream ist(s);
    std::vector<std::string> VecStr;
    while(ist >> s)
        VecStr.push_back(s);
 
    for(int i = n - 1; i < l+n-1; ++i)
        std::cout << VecStr[0][i] << ' ';
    std::cin.get();
}
 
int main()
{
    std::string s;
    getline(std::cin, s);
    SubWord(s, 1, 4);
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2012, 22:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать процедуру/функцию SubWord(s,n,l),которая реализует выделение из строки s l слов, начиная от слова номер n (C++):

Написать функцию SubWord(s,n,L), которая выделяет из строки s L слов, начиная со слова с номером n - C++
#include &lt;iostream.h&gt; #include &lt;string.h&gt; #include &lt;stdio.h&gt; using namespace std; void SubWord(string str,int n,int 1){ int...

выделение из строки s m слов, начиная от слова номер n - C++
выделение из строки s m слов, начиная от слова номер n. без использования библиотеки &lt;string.h&gt;

Выделить из строки s слов, начиная от слова с номером n - C++
Помогите пожалуйста: нужно выделить из строки s слов,начиная от слова с номером n. Входные параметры: s,n. Выходные параметры: нет.

Выделить из строки s l слов, начиная со слова с номером n - C++
Необходимо создать функцию для обработки символьных строк, используя традиционную обработку массивов и используя адресную арифметику. ...

Разработать функцию,которая перекрывает символы строки заданным количеством символов другой строки, начиная с заданной позиции - C++
Разработать функцию,которая перекрывает символы строки заданным количеством символов другой строки, начиная с заданной позиции.При...

Написать программу выделения из строки заданного количества слов, начиная со слова с заданным номером. - C++
8.1.1. Помогите, пожалуйста, решить задачу в С++. Написать программу выделения из строки заданного количества слов, начиная со...

4
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
06.11.2012, 22:48 #2
и в чем проблема?

Добавлено через 46 минут
Обязательно через вектор? я бы так сделал
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
using namespace std;
 
SubWord(string s,int n,int l){
    for(int i=0,count=0;i<s.size();i++){
        if(count>=n){
            while((s[i]!=' ')&&(i!=s.size()+1)&&(count<=n+l))
                cout<<s[i++];
            i--;
        }
        if(s[i]=' ')
            count++;
    }
}
int main(){
    string str;
    cout<<"Input the string: ";
    cin>>str;
    SubWord(str,1,4);
    return 0;
}
1
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
06.11.2012, 22:50 #3
Цитата Сообщение от Zakh Посмотреть сообщение
for(int i = n - 1; i < l+n-1; ++i) std::cout << VecStr[0][i] << ' ';
Так делать нельзя.

C++
1
2
    for(int i = (n - 1); i < (l+n-1); ++i)
        std::cout << VecStr[0][i] << ' ';
1
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
06.11.2012, 23:14 #4
Добавлено через 46 минут
Обязательно через вектор? я бы так сделал
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
using namespace std;
 
void SubWord(string s,int n,int l){
    int size=s.length();
    for(int i=0,count=0;i<size;i++){
        if(count>=n){
            while((s[i]!=' ')&&(i!=s.size()+1)&&(count<=n+l))
                cout<<s[i++];
           cout<<endl;
        }
        if(s[i]==' ')
            count++;
    }
}
int main(){
    string str;
    cout<<"Input the string: ";
    getline(cin,str);
    SubWord(str,1,4);
    return 0;
}
исправил кое какие глупости

Добавлено через 7 минут
совсем чистовая версия
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <string>
using namespace std;
 
void SubWord(string s,int n,int l){
    int count=0,i=0;
    while(s[i++]==' ')
        count--;
    for(int i=0;i<s.size();i++){
        if((count>=n-1)&&count<=n+l-2){
            while((s[i]!=' ')&&(i!=s.size()+1))
                cout<<s[i++];
           cout<<endl;
        }
        if(s[i]==' ')
            count++;
    }
}
int main(){
    string str;
    cout<<"Input the string: ";
    getline(cin,str);
    SubWord(str,2,4);
    return 0;
}
1
Zakh
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 3
09.11.2012, 22:04  [ТС] #5
Спасибо большое!Нет,через вектор не обязательно!Так даже лучше=)
0
09.11.2012, 22:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2012, 22:04
Привет! Вот еще темы с ответами:

Создать функцию, которая на вход получает строку символов и один символ, функция печатает те слова строки, в которых встречается этот символ. - C++
Здраствуйте, вы не могли б мне помоч, у меня проблема з задачей, в коде постоянно выдаёт ошыбки на мове С, , и это еще перевести в...

написать функцию которая реализует Исключающее ИЛИ - C++
Напишите функцию bool Xor (bool x, bool y), реализующую функцию &quot;Исключающее ИЛИ&quot; двух логических переменных x и y. Функция Xor должна...

Написать функцию, которая реализует бинарный поиск - C++
Написать функцию, которая реализует бинарный поиск. На входе в функцию получаем массив, его размер и элемент, который мы ищем. Спасибо.

Функция выделяет из строки заданное количество слов, начиная со слова с заданным номером - C (СИ)
Помогите написать функцию. Мой код не работает. #define CRT_NO_WARNINGS #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru