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

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

Войти
Регистрация
Восстановить пароль
 
Mi5aka
Сообщений: n/a
#1

Нахождение самого длинного слова - C++

25.02.2013, 17:17. Просмотров 392. Ответов 2
Метки нет (Все метки)

Появилась проблема, пишет несколько ошибок. В sl должен попадать текст, до этого попадал, сейчас не знаю, запуталась Т____Т

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include "stdafx.h"
#include <stdlib.h>
#include "conio.h"
#include <clocale>
#include <string.h>
#include <windows.h>
struct str
    {
     char slv[256];
    };
 
int _tmain(int argc, _TCHAR* argv[])
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    struct str *s;
    int m,i,j,z,y, max;
    char menu;
    char sl[],sl1[256],p[256];
        do{
    printf("1 - считать из файла\n 2 - ввести текст вручную\n 3 - найти наибольшее слово\n 4 - вывод результата\n 0 - выход\n");
    menu = getch();
    switch(menu)
    {
        case '1': 
        {
            FILE * in;
            in=fopen ("input.txt", "r"); 
            m=0;
            while (!feof(in))
                {
                    fgets(p, 256, in);
                    m++;
                }
             s = new str [m];
            fclose(in);
            break;
        }
 
        case '2':
            {
                printf ("Введите текст ");
                for (i=0; i<m; i++)
                {
                    gets(s[i].slv);
                }
        break;
        }
 
        case '3':
        {
char seps[] = " .,!\n";
 
int slova = 0;
sl[slova] = strtok( s[i].slv, seps);
while( sl[slova] != NULL )
   {
      printf( "%s\n", sl[slova] );
       slova++;
      sl[slova] = strtok( NULL, seps);
   }
        z=0;
        max=0;
        for (i=0; i<m; i++)
            {
                            if(max<strlen(sl))
                            {
                                max=strlen(sl);
                                for(y=0;y<strlen(sl1);y++) sl1[y]=NULL;
                                for(y=0;y<strlen(sl);y++) sl1[y]=sl[y];
                            }
                            z=0;        
                            for(y=0;y<strlen(sl);y++) sl[y]=NULL;
                        }
                }
        
        
                break;
        }
    case '4':
        {
            FILE *out;
                out=fopen ("output.txt", "w");
            fputs(sl1, out);
            printf ("%s", sl1);
            fclose(out);
            break;
        }
    
        } while(menu!='0');
        return 0;
}
 
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2013, 17:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нахождение самого длинного слова (C++):

Нахождение самого длинного слова в строке - C++
Здравствуйте :) У меня есть проблема, я написал программу, но она работает не совсем так как надо. Задание: Создать текстовый файл....

Строки (Найти длину самого короткого и самого длинного слова, а также сами эти слова) - C++
Люди, подскажите, плиз, как написать програмку в с++ за условием, что дана строка, состоящая из слов, разделенных пробелами (одним или...

Найти длину самого короткого и самого длинного слова, а также сами эти слова - C++
Народ, помогите, пожалуйста, как мне написать код в с++ програмки, в которой дана строка, состоящая из слов, разделенных пробелами (одним...

Найти длину самого короткого слова и самого длинного слова в строке - C++
помогите!!! Дана строка, содержащая текст. Найти длину самого короткого слова и самого длинного слова.

Разработать программу, осуществляющую поиск самого короткого и самого длинного слова во вводимом тексте - C++
Разработать программу, осуществляющую поиск самого короткого и самого длинного слова во вводимом тексте. С комментами)

Дана строка содержащая текст. Найти длину самого короткого и самого длинного слова. - C++
помогите написать программу =) очень нужно=) Дана строка содержащая текст. Найти длину самого короткого и самого длинного слова.

2
olya7
477 / 294 / 91
Регистрация: 18.02.2013
Сообщений: 684
25.02.2013, 18:19 #2
как-то так
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <stdio.h>
#include <iostream.h>
#include <string.h>
 
int main()   
{
    char st[100],s[500];
    struct str
    {
    char slv[256];
     int dlinna;
    } sl[500];
 
 gets(st);
 strcat(st," ");
  int n=strlen(st);
        if (n<2) return 1;
    int k=0,j=0,i;
    s[0]='\0';
  
   for (i=0; i<n; i++)
   { 
       sl[j].slv[0]='\0';
        
       if ((st[i] != ' ')&& (st[i] != '.') && (st[i] != ',') && (st[i] != '?')&&( st[i] != '!') )
       {
           s[k]=st[i];
           s[k+1]='\0';
           k++;
       }
       else
       {
           if (strlen(s)>=1) {strcpy(sl[j].slv,s);sl[j].dlinna=strlen(s);}
           s[0]='\0';
           j++;
           k=0;
            
       }
   }
       cout << "Poluchennii mass"<<endl;
       for (i=0;i<j;i++)
           puts(sl[i].slv);
       int max=0,max_i=0;
 
       for (i=0;i<j;i++)
           if(max<sl[i].dlinna) { max = sl[i].dlinna; max_i=i;}
           cout << sl[max_i].slv << " "<<  sl[max_i].dlinna; 
 
 
return 1;
}
0
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
25.02.2013, 20:45 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <sstream>
#include <algorithm>
#include <iterator>
 
typedef std::istream_iterator<std::string> input_string;
 
int main()
{
    std::string text;
    std::getline(std::cin, text);
    std::istringstream ist(text);
    std::cout << *std::max_element(input_string(ist), input_string(),
        [](const std::string &lhs, const std::string &rhs)
        { return lhs.length() > rhs.length(); } ) << std::endl;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2013, 20:45
Привет! Вот еще темы с ответами:

Дана строка, содержащая текст. Найти длину самого короткого и самого длинного слова. - C++
1. Дана строка, содержащая текст. Найти длину самого короткого и самого длинного слова. 2. 14.14. Имеется строка, содержащая буквы...

Определить длину самого длинного и самого короткого слова - C++
Помогите пожалуйста Я не понимаю как написать ввести массив символов, содержащий текст. Определить длину самого длинного и самого...

Найти длину самого длинного и самого короткого слова - C++
Дана строка символов. Найти длину самого длинного и самого короткого символа. Написать задачу с обращением к процедуре...

Найти длину самого короткого и самого длинного слова. - C++
Дана строка, содержащая текст. Найти длину самого короткого и самого длинного слова.


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

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

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