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

Строки - C++

Восстановить пароль Регистрация
 
Olia88
1 / 1 / 0
Регистрация: 20.02.2012
Сообщений: 24
21.02.2012, 19:13     Строки #1
Ребята, не поможете решить задачу?

Вводится строка произвольного текста. Вывести на экран второе слово (слова разделены пробелами).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2012, 19:13     Строки
Посмотрите здесь:

Строки! Замена в строке всех вхождений другой строки C++
C++ Отсортировать цифры, символы и буквы из строки в отдельные строки
Разработка функции (размещение строки s1 в середине строки s2 длиной l) C++
Строки (Расположить слова строки в порядке, обратном исходному) C++
Строки. Вывести на печать то слово этой строки, которое по алфавиту предшествует всем другим C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
21.02.2012, 19:32     Строки #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    string str;
    getline(cin, str);
    int start = str.find(' ', 0      );
    int end   = str.find(' ', start+1);
    if( start != string::npos &&
            end   != string::npos)
    {
        string  secondWord(str.begin()+start+1, str.begin()+end);
        cout << secondWord << endl;
    }
    return 0;
}
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.02.2012, 19:36     Строки #3
Цитата Сообщение от Mayonez Посмотреть сообщение
strind::npos)
Что это? О_о
Olia88
1 / 1 / 0
Регистрация: 20.02.2012
Сообщений: 24
21.02.2012, 19:40  [ТС]     Строки #4
У меня выдает ошибку в 12 строке
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
21.02.2012, 19:43     Строки #5
-1

Не по теме:

Набранное вами сообщение слишком короткое. Увеличьте ваше сообщение до 5 символов.



Добавлено через 1 минуту
Olia88, strind на string

Добавлено через 12 секунд
уже исправил

Добавлено через 1 минуту
Цитата Сообщение от go Посмотреть сообщение
Что это?
если не найдено, то find возвращает константу npos, которая по сути равна -1
AzaKendler
 Аватар для AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
21.02.2012, 19:45     Строки #6
Цитата Сообщение от go Посмотреть сообщение
Сообщение от Mayonez
strind::npos)
Что это?
это некое значение, возвращаемое как результат неудачного поиска.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.02.2012, 19:46     Строки #7
Mayonez, Код не рабочий. http://liveworkspace.org/code/b7649c...bc571c0cee2102
Например, так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <sstream>
#include <string>
 
int main()
{
   std::string s("Hello world ew 123erwr");
   std::istringstream ss(s);
   size_t count = 2;
   
   while ( count-- && ss >> s );
   
   if ( !(count + 1) ) 
      std::cout << s << std::endl;
  return 0;
}
http://liveworkspace.org/code/ee033f...22049c4765fdc4
Olia88
1 / 1 / 0
Регистрация: 20.02.2012
Сообщений: 24
21.02.2012, 19:46  [ТС]     Строки #8
Mayonez спасибо огромное!!!!!
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.02.2012, 19:46     Строки #9
Цитата Сообщение от Mayonez Посмотреть сообщение
если не найдено, то find возвращает константу npos, которая по сути равна -1
Цитата Сообщение от Mayonez Посмотреть сообщение
strind::npos)
Я имел ввиду конкретно это
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
21.02.2012, 19:48     Строки #10
Цитата Сообщение от go Посмотреть сообщение
int на size_t
R136a1
 Аватар для R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
21.02.2012, 19:50     Строки #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <cstring>
 
int main()
{
        const int size = 100;
        char str[100];
 
        std::cout << "Введите строку: ";
        std::cin.getline(str,size);
 
        char *ptr = strtok(str," ");
        ptr = strtok(NULL," ");
 
        std::cout << ptr << std::endl;
 
        return 0;
}
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
21.02.2012, 19:52     Строки #12
go, а я понял, вы за проблему со вторым пробелом

Добавлено через 1 минуту
но это решение подходит под просьбу тс
(слова разделены пробелами).
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.02.2012, 20:00     Строки #13
Цитата Сообщение от Mayonez Посмотреть сообщение
go, а я понял, вы за проблему со вторым пробелом
Да. В задании ничего не оговорено.
Oploshka
3 / 3 / 0
Регистрация: 08.12.2011
Сообщений: 36
21.02.2012, 20:10     Строки #14
Но у программы есть недостатки=) к которым любят придераться учителя, это если в строке в начале пробелы и она не будет работать или если ввести два слова... А про одно вообше молчу
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
21.02.2012, 20:27     Строки #15
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
27
28
29
30
31
#include <iostream>
#include <string>
#include <sstream>
 
using namespace std;
 
void outSecondWord(string& s)
{
    if( s.find(' ')              == string::npos || 
        s.find_first_not_of(' ') == string::npos)
    {
        cout << "Incorrect input" << endl;
        return;
    }
    istringstream ss(s);
    string second;
    ss >> second;
    ss >> second;
    cout << "Second word [" 
        << second  << "]" 
        << endl;
}
 
int main()
{
    string s;
    cout << "Enter sentence: ";
    getline(cin, s);
    outSecondWord(s);
    return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от Oploshka Посмотреть сообщение
Но у программы есть недостатки=) к которым любят придераться учителя, это если в строке в начале пробелы и она не будет работать или если ввести два слова... А про одно вообше молчу
давайте все варианты
Oploshka
3 / 3 / 0
Регистрация: 08.12.2011
Сообщений: 36
21.02.2012, 20:34     Строки #16
Цитата Сообщение от Mayonez Посмотреть сообщение
давайте все варианты
не надо все варианты поверь у учителей столько заморочек, а вдруг... верблюд, любят они над детьми издеваться... был студентом, знаю; вечно докапывалися... но это не по теме уже.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
21.02.2012, 20:42     Строки #17
по рабоче-крестьянски
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <string.h>
    
int main(void){
    char buf[BUFSIZ], * p;
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ){
        if ( ! ( p = strtok(buf, " \t\n") ) )
            printf("Can't find any words.\n");
        else if ( ! ( p = strtok(NULL, " \t\n") ) )
            printf("No second word in string.\n");
        else
            printf("Second word: %s\n", p);
    }
    
    return 0;
}
Oploshka
3 / 3 / 0
Регистрация: 08.12.2011
Сообщений: 36
21.02.2012, 20:57     Строки #18
Ребят только обьясните как работает функция strtok(string s1,string s2) просто со строками особо не работаю.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2012, 21:29     Строки
Еще ссылки по теме:

C++ Структуры и строки (как поменять значение строки в структуре?)
C++ Слияних 2 файлов в третий + строки + использование командной строки
C++ Вводятся 2 строки. Перевернуть обе строки, склеить и вывести

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

Или воспользуйтесь поиском по форуму:
R136a1
 Аватар для R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
21.02.2012, 21:29     Строки #19
Цитата Сообщение от Oploshka Посмотреть сообщение
Ребят только обьясните как работает функция strtok(string s1,string s2) просто со строками особо не работаю.
strtok
там не string, а ( char *, const char *)
Yandex
Объявления
21.02.2012, 21:29     Строки
Ответ Создать тему
Опции темы

Текущее время: 10:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru