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

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

Войти
Регистрация
Восстановить пароль
 
kaffein
5 / 5 / 1
Регистрация: 14.11.2010
Сообщений: 121
#1

вывести первые n слов на экран - C++

22.11.2010, 14:12. Просмотров 519. Ответов 8
Метки нет (Все метки)

Всем привет
Мне нужно вывести на экран первые n слов из рядка. Пользователь задает количество слов n.
не пойму как организовать цикл. ввести и вывести нужно с помощью printf() и scanf()
на пример есть рядок "привет алекс как у тебя дела" пользователь хочет вывести первые 2 слова, на экран должно вывести "привет алекс" буду очень признателен за помощь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2010, 14:12     вывести первые n слов на экран
Посмотрите здесь:

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

Вывести на экран первые N простых чисел - C++
Написать программу, которая выводит на экран первые N простых чисел Помогите разобраться, я решила задачу, надо чтоб выводилось N простых...

Вывести на экран первые 20 чисел Фибоначчи. - C++
Помогите решить задачи через цикл do _ while: 1) Вывести на экран первые 20 чисел Фибоначчи. Каждое последующее число равно сумме двух...

Вывести на экран первые пять совершенных чисел - C++
Помогите пожалуйста с программой. 32. Вывести на экран первые пять совершенных чисел (функция возвращает 1, если число совершенное, 0 – в...

Вывести на экран первые n членов арифметической прогрессии - C++
C++ Напишите программу, выводящую на экран первые n членов арифметической прогрессии с заданным первым элементом a прогрессии и разность d....

Циклы: первые 6 чисел, кратные 9, вывести на экран - C++
Первые 6 чисел, кратные 9 вывести на экран. Как дописать не могу понять? const int max = 109; int counter = 0; int ci= 0; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
22.11.2010, 16:23     вывести первые n слов на экран #2
На С++
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>
#include <vector>
#include <sstream>
 
int main()
{
    std::string str, temp;
    std::cout << "Enter string: ";
    getline(std::cin, str);
    std::vector<std::string> vec_str;
    std::istringstream ist(str);
    while(ist >> temp)
    {
        vec_str.push_back(temp);
    }
    int n = 0;
    std::cout << "Enter n: ";
    std::cin >> n;
    std::cout << "> " << vec_str[n-1];
    return 0;
}
Блин,плохо понял задание.
kaffein
5 / 5 / 1
Регистрация: 14.11.2010
Сообщений: 121
22.11.2010, 16:29  [ТС]     вывести первые n слов на экран #3
ми ещо не изучали потоковый ввод и вывод, можно c помощю printf() и scanf()?
Спасибо))
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
22.11.2010, 16:31     вывести первые n слов на экран #4
Вот так как бэ норм
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
26
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
 
int main()
{
    std::string str, temp;
    std::cout << "Enter string: ";
    getline(std::cin, str);
    std::vector<std::string> vec_str;
    std::istringstream ist(str);
    while(ist >> temp)
    {
        vec_str.push_back(temp);
    }
    int n = 0;
    std::cout << "Enter n: ";
    std::cin >> n;
    std::cout << "> ";
    for(int i = 0; i < n; ++i)
    {
        std::cout << vec_str[i] << ' ';
    }
    return 0;
}
Извини,но з Си я пока на "Вы"
kaffein
5 / 5 / 1
Регистрация: 14.11.2010
Сообщений: 121
22.11.2010, 16:34  [ТС]     вывести первые n слов на экран #5
вообщето мне нужно на Си ++
easybudda
Эксперт CЭксперт С++
9470 / 5483 / 927
Регистрация: 25.07.2009
Сообщений: 10,505
22.11.2010, 16:34     вывести первые n слов на экран #6
Цитата Сообщение от asics Посмотреть сообщение
На С++
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <sstream>
 
int main(){
    std::string buf;
    int n_words;
    
    std::cout << "String: ";
    std::getline(std::cin, buf);
    std::cout << "Number of words: ";
    std::cin >> n_words;
    
    std::istringstream ist(buf);
    while ( n_words-- && ist >> buf )
        std::cout << buf << " ";
    
    std::cout << std::endl;
    return 0;
}
kaffein
5 / 5 / 1
Регистрация: 14.11.2010
Сообщений: 121
22.11.2010, 16:40  [ТС]     вывести первые n слов на экран #7
смисл я то понял, но с потоками я ещо толком не разобрался если не сложно можно ето всё дело записать с помощю printf() и scanf()
извините что достаю
easybudda
Эксперт CЭксперт С++
9470 / 5483 / 927
Регистрация: 25.07.2009
Сообщений: 10,505
22.11.2010, 16:43     вывести первые n слов на экран #8
Цитата Сообщение от kaffein Посмотреть сообщение
можно c помощю printf() и scanf()?
Цитата Сообщение от kaffein Посмотреть сообщение
мне нужно на Си ++
Вы уж определитесь как-нибудь...
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 <stdio.h>
#include <string.h>
 
#define DELIM " \t\n"
 
int main(void){
    char buf[BUFSIZ], * p;
    int i, num;
    
    printf("String: ");
    if ( ! fgets(buf, BUFSIZ, stdin) )
        return 1;
    
    printf("Number of words: ");
    if ( scanf("%d", &num) != 1 || ! num )
        return 1;
    
    for ( p = strtok(buf, DELIM); num && p; --num, p = strtok(NULL, DELIM) )
        printf("%s ", p);
    
    printf("\n");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2010, 19:02     вывести первые n слов на экран
Еще ссылки по теме:

Вывести на экран первые 10 четных элементов массива - C++
Помагите пожалуйста срочно нужна помощь вывести на экран первый 10 четных элементов массива

Вывести на экран первые сто простых чисел, пропуская каждое второе - C++
3. Написать программу вывода на экран первых ста простых чисел, пропуская каждое второе.

Вывести на экран предложения, начинающиеся с однобуквенных слов - C++
Здравствуйте. Требуется из любого текста(строки s) вывести на экран сначала предложения, начинающиеся с однобуквенных слов, а затем все...

Вывести на экран предложения, состоящие из заданного количества слов - C++
написать программу, которая считывает текст из файла и выводит на экран только те предложения, состоящие из заданного количества слов


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

Или воспользуйтесь поиском по форуму:
kaffein
5 / 5 / 1
Регистрация: 14.11.2010
Сообщений: 121
22.11.2010, 19:02  [ТС]     вывести первые n слов на экран #9
О! спасибо

Добавлено через 2 часа 14 минут
Цитата Сообщение от easybudda Посмотреть сообщение
Вы уж определитесь как-нибудь...
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 <stdio.h>
#include <string.h>
 
#define DELIM " \t\n"
 
int main(void){
    char buf[BUFSIZ], * p;
    int i, num;
    
    printf("String: ");
    if ( ! fgets(buf, BUFSIZ, stdin) )
        return 1;
    
    printf("Number of words: ");
    if ( scanf("%d", &num) != 1 || ! num )
        return 1;
    
    for ( p = strtok(buf, DELIM); num && p; --num, p = strtok(NULL, DELIM) )
        printf("%s ", p);
    
    printf("\n");
    return 0;
}

что то я сижу и не могу вехать что такое

buf[BUFSIZ],

strtok
#define DELIM " \t\n"

можно добавить коментарии?
Yandex
Объявления
22.11.2010, 19:02     вывести первые n слов на экран
Ответ Создать тему
Опции темы

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