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

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

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

Строки - C++

21.02.2012, 19:13. Просмотров 651. Ответов 18
Метки нет (Все метки)

Ребята, не поможете решить задачу?

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

Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки - C++
Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки. 1. Я дуб дубом,даже...

Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк - C++
Есть динамический массив строк. Заполняется, т.е. размер его уже известен будет. Но дальше нужно сделать задание: "Добавить строки, начиная...

Удалить строки динамической матрицы, начиная со строки К1 и до строки К2 - C++
Сформировать динамический двумерный массив, заполнить его случайными числами и удалить строки, начиная со строки К1 и до строки К2 вот...

Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содер-жится в ней - C++
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка...

Как первые два символа строки переставить в конец этой строки? - C++
Собственно вопрос

Указать номер строки, максимально удаленной от первой строки заданной матрицы - C++
Задание: Расстояние между k-й и 1-й строками квадратной матрицы А опеределяется как r = сумма от j=1 до N от (abs(akj)*abs(a1j)). Указать...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Mayonez
380 / 272 / 21
Регистрация: 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++
3586 / 1366 / 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
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
21.02.2012, 19:43 #5
-1

Не по теме:

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



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

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

Добавлено через 1 минуту
Цитата Сообщение от go Посмотреть сообщение
Что это?
если не найдено, то find возвращает константу npos, которая по сути равна -1
AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
21.02.2012, 19:45 #6
Цитата Сообщение от go Посмотреть сообщение
Сообщение от Mayonez
strind::npos)
Что это?
это некое значение, возвращаемое как результат неудачного поиска.
go
Эксперт C++
3586 / 1366 / 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++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.02.2012, 19:46 #9
Цитата Сообщение от Mayonez Посмотреть сообщение
если не найдено, то find возвращает константу npos, которая по сути равна -1
Цитата Сообщение от Mayonez Посмотреть сообщение
strind::npos)
Я имел ввиду конкретно это
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
21.02.2012, 19:48 #10
Цитата Сообщение от go Посмотреть сообщение
int на size_t
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
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
21.02.2012, 19:52 #12
go, а я понял, вы за проблему со вторым пробелом

Добавлено через 1 минуту
но это решение подходит под просьбу тс
(слова разделены пробелами).
go
Эксперт C++
3586 / 1366 / 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
380 / 272 / 21
Регистрация: 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 Посмотреть сообщение
Но у программы есть недостатки=) к которым любят придераться учителя, это если в строке в начале пробелы и она не будет работать или если ввести два слова... А про одно вообше молчу
давайте все варианты
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2012, 20:27
Привет! Вот еще темы с ответами:

Как считать строки из файла, если там больше одной строки? - C++
Как считать строки из файла в массив. Если в файле одна строка, то нет проблем, но если несколько, то при использовании функции fgets ...

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

Функция перезаписывает символы строки заданным количеством символов другой строки - C++
Программа работает. Но не совсем правильно. В конечной строке появляются непонятные символы, которых быть там не должно. В программе нельзя...

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


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

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

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