Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 3

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

06.11.2012, 22:01. Показов 2285. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.11.2012, 22:01
Ответы с готовыми решениями:

Написать функцию SubWord(s,n,L), которая выделяет из строки s L слов, начиная со слова с номером n
#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
выделение из строки s m слов, начиная от слова номер n. без использования библиотеки &lt;string.h&gt;

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

4
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
06.11.2012, 22:48
и в чем проблема?

Добавлено через 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
Обитатель форума
201 / 184 / 54
Регистрация: 28.10.2012
Сообщений: 543
06.11.2012, 22:50
Цитата Сообщение от 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
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
06.11.2012, 23:14
Добавлено через 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
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 3
09.11.2012, 22:04  [ТС]
Спасибо большое!Нет,через вектор не обязательно!Так даже лучше=)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.11.2012, 22:04
Помогаю со студенческими работами здесь

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru