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

Строки. Найти длину самого короткого слова - C++

Восстановить пароль Регистрация
 
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 401
05.12.2013, 20:28     Строки. Найти длину самого короткого слова #1
Добрый вечер. Хочу попросить у вас помощи с программой: нужно найти длину самого короткого слова в строке и вывести его. Все коды, что нахожу, работают не под это. Буду благодарен за помощь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2013, 20:28     Строки. Найти длину самого короткого слова
Посмотрите здесь:

Дана строка содержащая текст. Найти длину самого короткого и самого длинного слова. C++
Найти длину самого короткого слова C++
Дана строка, содержащая текст. Найти длину самого короткого и самого длинного слова. C++
C++ Найти длину самого короткого слова и самого длинного слова в строке
Найти длину самого короткого и самого длинного слова. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Waik
10 / 10 / 1
Регистрация: 23.04.2013
Сообщений: 55
05.12.2013, 20:44     Строки. Найти длину самого короткого слова #2
А где примеры собственных попыток решения?
p/s И наверняка вы плохо искали.
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 401
05.12.2013, 21:08  [ТС]     Строки. Найти длину самого короткого слова #3
Цитата Сообщение от Waik Посмотреть сообщение
А где примеры собственных попыток решения?
p/s И наверняка вы плохо искали.
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 <cstring>
#include <sstream>
 
using namespace std;
int main()
{
char str[256],temp[256];
cin.getline(str, 256);
int l=strlen(str),i,n=0,min_len,max_len;
istringstream ist(str);
ist>>temp;
min_len=max_len=strlen(temp);
while(ist>>temp)
{
if (strlen(temp)>max_len) max_len=strlen(temp);
if (strlen(temp)<min_len) min_len=strlen(temp);
}
cout<<max_len<<endl<<min_len<<endl;
system ("pause");
}



Не хочет работать
Waik
10 / 10 / 1
Регистрация: 23.04.2013
Сообщений: 55
05.12.2013, 21:40     Строки. Найти длину самого короткого слова #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
27
#include "stdafx.h" 
#include <iostream>
 
int main() {
    char str[80];
    int Len,k,min;
 
    printf("enter string:\n");
    gets(str);
 
    Len=strlen(str);                                    //длина строки
    k=0;                                                //длина слова. изначально 0
    min=0;                                              //минимальное значение. изначально 0
    for(int i=0; i<=Len; i++){
        k++;                                            //счетчки длины слова
        if((str[i+1] == ' ') || (str[i+1] == '\0')){    //если след символ пробле или символ окончания строки то,
            if(min == 0) min =k;                        //если min=0 это значит что мы нашли первое слово и минимальным значением по умолчанию будет длина первого слова
            if(k < min) min = k;                        //если длина слова меньше min то присваиваем новое значение для min
            k=-1;                                       //обнуляем длину слова. -1 т.к след символ в цикле это пробле, нам его считать не нужно
        }
    }
    printf("\n min %i ", min);
    system("pause");
    return 0;
 
 
}
Пожалуйста.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.12.2013, 21:56     Строки. Найти длину самого короткого слова #5
Цитата Сообщение от avatar1870 Посмотреть сообщение
Не хочет работать
Если немного переделать ваш код (правда, смесь С и С++ получается):
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
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <sstream>
 
using namespace std;
 
int main()
{
    char str[256], temp[256], min[256];
    
    cin.getline(str, 256);
    
    istringstream ist(str);
    ist >> min;
    while(ist >> temp)
    {
        if (strlen(temp) < strlen(min))
            strcpy(min, temp);
    }
    cout << min << endl;
    
    system ("pause");
    return 0;
}
Yandex
Объявления
05.12.2013, 21:56     Строки. Найти длину самого короткого слова
Ответ Создать тему
Опции темы

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