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

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

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

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

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

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

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
asics
Freelance
Эксперт С++
2847 / 1784 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
22.11.2010, 16:23 #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;
}
Блин,плохо понял задание.
0
kaffein
5 / 5 / 1
Регистрация: 14.11.2010
Сообщений: 121
22.11.2010, 16:29  [ТС] #3
ми ещо не изучали потоковый ввод и вывод, можно c помощю printf() и scanf()?
Спасибо))
0
asics
Freelance
Эксперт С++
2847 / 1784 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
22.11.2010, 16:31 #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;
}
Извини,но з Си я пока на "Вы"
0
kaffein
5 / 5 / 1
Регистрация: 14.11.2010
Сообщений: 121
22.11.2010, 16:34  [ТС] #5
вообщето мне нужно на Си ++
0
easybudda
Модератор
Эксперт CЭксперт С++
9624 / 5572 / 946
Регистрация: 25.07.2009
Сообщений: 10,702
22.11.2010, 16:34 #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;
}
0
kaffein
5 / 5 / 1
Регистрация: 14.11.2010
Сообщений: 121
22.11.2010, 16:40  [ТС] #7
смисл я то понял, но с потоками я ещо толком не разобрался если не сложно можно ето всё дело записать с помощю printf() и scanf()
извините что достаю
0
easybudda
Модератор
Эксперт CЭксперт С++
9624 / 5572 / 946
Регистрация: 25.07.2009
Сообщений: 10,702
22.11.2010, 16:43 #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;
}
1
kaffein
5 / 5 / 1
Регистрация: 14.11.2010
Сообщений: 121
22.11.2010, 19:02  [ТС] #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"

можно добавить коментарии?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2010, 19:02
Привет! Вот еще темы с ответами:

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

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

Строка, введенная пользователем, состоит из слов, разделенных запятой. Подсчитать и вывести на экран количество введенных слов - C++
Задание: Строка, введенная пользователем, состоит из слов, разделенных запятой. Подсчитать и вывести на экран количество введенных слов. ...

Вычыслить количество слов в строке, длинна которых равна 3 символам и вывести их на экран, если же таких слов нет, то выдать об этом сообщение. - C++
Вычыслить количество слов в строке, длинна которых равна 3 символам и вывести их на экран, если же таких слов нет, то выдать об этом...


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

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

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