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

Программа считывания - C++

Восстановить пароль Регистрация
 
Royston
0 / 0 / 0
Регистрация: 08.11.2011
Сообщений: 3
08.11.2011, 15:10     Программа считывания #1
Прошу помогите написать программу которая считывает текст с клавиатуры и выводит на экран только слова состоящие из заданного количества букв.

не особо разбираюсь в Borland C++ for DOS, но примерно понимаю что должно получится. Помогите если не сложно.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
08.11.2011, 16:00     Программа считывания #2
Цитата Сообщение от Royston Посмотреть сообщение
Прошу помогите написать программу которая считывает текст с клавиатуры и выводит на экран только слова состоящие из заданного количества букв.
не особо разбираюсь в Borland C++ for DOS, но примерно понимаю что должно получится. Помогите если не сложно.
- Вот на Си
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 <stdio.h> //printf scanf
#include <conio.h> //getch
#include <string.h>//strtok
 
int main()
{
    long n;
    char str[1024];
    char delim[] = " ,.?!-";//ГђГ*çäåëèòåëè ìåæäó ñëîâГ*ìè
    printf("Enter string\n");
    scanf("%[^\n]%c",str);
    printf("Enter n : ");scanf("%u",&n);
    //Âûäåëÿåì ГЁГ§ ñòðîêè 1-ГҐ ñëîâî
    char * word = strtok(str,delim);
    while(word)
    {
        if(strlen(word) == n)
            printf("%s\n",word);
        //Ïðîäîëæå\Г*ГҐГ¬ âûäåëÿòü ГЁГ§ ñòðîêè ñëîâГ*
        word = strtok(NULL,delim);
    }   
    printf("Press any key to continue\n");
    getch();
    return 0;
}
Миниатюры
Программа считывания  
-=ЮрА=-
Заблокирован
Автор FAQ
08.11.2011, 16:15     Программа считывания #3
Вот простенько на плюсах
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>
using namespace std;
 
int main()
{
    string str;
    cout<<"Enter string\n";
    getline(cin,str);
    long i,n,wLen,pos;
    long sLen = str.length();
    cout<<"Enter n: ";cin>>n;
    for(i = 0,pos = 0,wLen = 0; i < sLen; i++)
    {
        //ГЏГ*ðñèì ïðîáåë, îêîГ*Г·Г*Г*ГЁГҐ ñòðîêè ГЁ Г§Г*Г*ГЄГЁ ïðåïèГ*Г*Г*ГЁГї
        if(str[i] == ' ' || str[i] == '\0' ||
           str[i] == '.' || str[i] == ','  ||
           str[i] == '!' || str[i] == '?'  || 
           str[i] == ';' || str[i] == '-' )
        {
            if(wLen == n)
                cout<<str.substr(pos,wLen).c_str()<<endl;
            wLen = 0;
            pos  = i + 1;
        }
        else
            wLen++;
    }
    system("pause");
    return 0;
}
PS: если пишем на стареньких компиляторах после ввода строки Enter нажать 2 раза
Миниатюры
Программа считывания  
Royston
0 / 0 / 0
Регистрация: 08.11.2011
Сообщений: 3
08.11.2011, 16:39  [ТС]     Программа считывания #4
=-=ЮрА=-

вопрос попеременным в первом варианте:
char * word = strtok(str,delim); вот ворду мы присваиваем библитеотеку чар да?, а вот strtok что это?
и вопрос про long n, можете объяснить для чего лонг? Нельзя double сделать её?

А так спасибо за помощь, всё ясно описано=)
-=ЮрА=-
Заблокирован
Автор FAQ
08.11.2011, 17:32     Программа считывания #5
Цитата Сообщение от Royston Посмотреть сообщение
а вот strtok что это?
- http://www.cplusplus.com/reference/c...string/strtok/

Цитата Сообщение от Royston Посмотреть сообщение
можете объяснить для чего лонг?Нельзя double сделать её?
- в принципе не критично можно на int заменить но не double - это число букв (их количество) в слове, оно не может быть дробным...
Royston
0 / 0 / 0
Регистрация: 08.11.2011
Сообщений: 3
08.11.2011, 19:20  [ТС]     Программа считывания #6
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- http://www.cplusplus.com/reference/c...string/strtok/

- в принципе не критично можно на int заменить но не double - это число букв (их количество) в слове, оно не может быть дробным...
т.е. оно делит строку на небольшие строки? Для этого у нас и есть delim я так понимаю.

Спасибо!
Yandex
Объявления
08.11.2011, 19:20     Программа считывания
Ответ Создать тему
Опции темы

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