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

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

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

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

06.11.2012, 22:01. Просмотров 809. Ответов 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;
}
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
выделение из строки s m слов, начиная от слова номер n C++
C++ Выделить из строки s слов, начиная от слова с номером n
C++ Выделить из строки s l слов, начиная со слова с номером n
C++ Разработать функцию,которая перекрывает символы строки заданным количеством символов другой строки, начиная с заданной позиции
C++ Написать программу выделения из строки заданного количества слов, начиная со слова с заданным номером.
Создать функцию, которая на вход получает строку символов и один символ, функция печатает те слова строки, в которых встречается этот символ. C++
C++ Написать функцию, которая реализует бинарный поиск
написать функцию которая реализует Исключающее ИЛИ C++
Создать функцию, которая из введенного пользователем слова выводит на экран k-й символ C++
C++ Создать функцию, которой строка передаётся как параметр, и которая возвращает количество слов
Создать функцию, которой строка передаётся как параметр, и которая возвращает количество слов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
06.11.2012, 22:48     Создать процедуру/функцию SubWord(s,n,l),которая реализует выделение из строки s l слов, начиная от слова номер n #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;
}
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
06.11.2012, 22:50     Создать процедуру/функцию SubWord(s,n,l),которая реализует выделение из строки s l слов, начиная от слова номер n #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] << ' ';
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
06.11.2012, 23:14     Создать процедуру/функцию SubWord(s,n,l),которая реализует выделение из строки s l слов, начиная от слова номер n #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;
}
Zakh
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 3
09.11.2012, 22:04  [ТС]     Создать процедуру/функцию SubWord(s,n,l),которая реализует выделение из строки s l слов, начиная от слова номер n #5
Спасибо большое!Нет,через вектор не обязательно!Так даже лучше=)
Yandex
Объявления
09.11.2012, 22:04     Создать процедуру/функцию SubWord(s,n,l),которая реализует выделение из строки s l слов, начиная от слова номер n
Ответ Создать тему
Опции темы

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