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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
#1

Найти минимальное слово в строке - C++

16.11.2012, 20:00. Просмотров 1364. Ответов 4
Метки нет (Все метки)

Вводится предложение чтот тип такого " ? where is your... mind?! " необходимо найти слово минимальной длины.
вроде как и написал но не работает помогите найти ошибку...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <string>
#include <iostream>
 
void main(){
    std::string str,str1 = "";
    int sizemin = 255;
    std::getline (std::cin, str);
    for (int i = 0; i < str.size(); i++){
        if ('A'<=str[i] && str[i] <= 'Z' || 'a'<=str[i] && str[i] <= 'z'){
                str1 += str[i];
                continue;
        }
        else
            if (str1.size() < sizemin){
                sizemin = str1.size();
            }
        str1 = "";
    }
    std::cout << sizemin;
    system("pause");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2012, 20:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти минимальное слово в строке (C++):

Символьная строка вводится с консоли (используя указатель) Найти минимальное слово в строке и перевернуть его - C++
Ввести символьную строку (используя указатель). Найти в строке самое короткое слово и удалить его из строки. В строке слова разделены...

Найти слово "ТЕКСТ", если такое слово есть,то отпечатать его номер в строке. - C++
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом...

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

Найти минимальное|максимальное значение в каждой строке матрицы - C++
Помогите с задачей! язык С++ Дана матрица размера n×m. Найти минимальное1|максимальное2 значение в каждой строке3|столбце4.

Найти минимальное|максимальное значение в каждой строке матрицы - C++
Осталось 30мин помогите Дана матрица размером 5 x 10 . Найти минимальное и максимальное значение в каждой строке столбце C++

Найти максимальный элемент матрицы и минимальное значение в строке где он находится - C++
Дана матрица m , n. найти максимальный элемент матрицы и минимальное значение в строке где он находится. Вот начало, помогите дописать...

4
Eugine
3 / 3 / 0
Регистрация: 10.11.2012
Сообщений: 63
16.11.2012, 20:25 #2
C++
1
" ? where is your... mind?! "
А где вы обрабатываете '?'
Если вам надо его пропустить, то вот:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for (int i = 0; i < str.size(); ++i){
        if(!str1.size() && str[i] == ' ')
            continue;
        if (('A' <= str[i] && str[i] <= 'Z') || ('a' <= str[i] && str[i] <= 'z')){
                str1 += str[i];
                continue;
        }
        else if(str[i] == ' ')
            if (str1.size() < sizemin) {
                sizemin = str1.size();
            }
        str1 = "";
    }
1
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
16.11.2012, 21:58  [ТС] #3
Цитата Сообщение от Eugine Посмотреть сообщение
C++
1
" ? where is your... mind?! "
А где вы обрабатываете '?'
Если вам надо его пропустить, то вот:
C++
1
2
3
4
for (int i = 0; i < str.size(); ++i){
        if(!str1.size() && str[i] == ' ')
            continue;
    }
Спасибо=) вот я....

Добавлено через 24 минуты
такая проблема теперь если в слове всего одна буква например J то не ищет его минимальное за 2 буквы принимает
0
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
16.11.2012, 22:16 #4
Могу предложить такой вариант программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
#include <iterator>
 
int main()
{
    setlocale (LC_ALL, "Russian");
    std::string str;
    std::cout<<"Введите строку: ";
    getline(std::cin, str);
    std::istringstream iss(str);
    std::cout<<"Слово минимальной длины: "<<*std::min_element( std::istream_iterator<std::string>(iss), 
                                                               std::istream_iterator<std::string>(), 
                                                               [](const std::string& s1, const std::string& s2)
                                                               {return s1.length()<s2.length();})
    <<std::endl;
    system("pause");
    return 0;
}
0
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
02.12.2012, 14:07  [ТС] #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
void main(){
  char c;
  int s = 255,k = 0;
  while (std::cin.get(c)){
        if (('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z')){
                k++;
                continue;
        }
        else 
      if(k == 0) continue;
            if (k < s) {
                s = k;
            }
        k = 0;
    }
  std::cout << s;
}
вот если кому интересно
0
02.12.2012, 14:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2012, 14:07
Привет! Вот еще темы с ответами:

Найти количество слов в строке; найти самое длинное слово, заканчивающееся на заданную букву - C++
Дана строка текста, в которой слова разделены пробелами. Необходимо: - вычислить количество слов в строке; ...

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

В строке S1 найти слово DOM - C++
В строке S1 найти слово DOM, если оно есть то вывести все номера позиции

Найти в строке наименьшее слово - C++
дано string a(&quot;masha ila kashu&quot;); найти в строке наименьшее слово


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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