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

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

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

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

18.10.2010, 21:26. Просмотров 897. Ответов 3
Метки нет (Все метки)

Доброго времени суток, форумчане. Надеюсь на вашу помощь. Через неделю сессия, а мне к ней осталось доделать 4 задачи по практике, которые никак не выходят. Раньше учили Basic, в нём я ориентируюсь лучше, но думаю это неважно) Буду очень благодарен за любую помощь или советы.

1) Даны текстовая строка и слово (например, ab). Напечатать все слова, входящие в эту текстовую строку, заканчивающиеся на буквы заданного слова (например, abcdab, ab, kab), используя функции strtok, strlen, strcmp.


2) Записать алгоритм нахождения канторового разложения произвольного числа а – вектора в виде рекурсивной функции. Канторовым разложением положительного числа а называется запись вида:a=a1*1!+a2*2!...+an*n!, 0<=ai<=an.


3) Дан файл, содержащий несколько строк (причем строки не содержат пробелов). В новый файл записать строки данного, вставляя пробелы так, чтобы каждая строка имела длину 80 символов (пробелы должны быть расставлены равномерно).


4) Определить функцию, проверяющую, является ли заданная дробь несократимой. (Дробь задается двумя натуральными числами – числителем и знаменателем). Найти все несократимые дроби, заключенные между 0 и 1, знаменатели которых не превышают заданное число n.



Всем, заранее спасибо за помощь!

Добавлено через 3 часа 32 минуты
Неужели это так сложно?)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2010, 21:26     Напечатать все слова, входящие в эту текстовую строку, заканчивающиеся на буквы заданного слова (например, abcdab, ab, kab)
Посмотрите здесь:
C++ Класс String. Напечатать все слова, входящие в эту текстовую строку, имеющие такую же длину как и заданное слово
Напечатать все слова, отличающиеся от последнего слова, в которых буквы упорядочены по алфавиту C++
C++ Переставить все входящие буквы «а» в начало слова, а буквы «я» – в конец
C++ Для заданного достаточно длинного слова найти в имеющемся тексте все слова, в которых использованы только буквы, имеющиеся в заданном слове
Файловый ввод/вывод. Во всех словах строки переставить все входящие буквы «а» в начало слова, а буквы «я» – в конец C++
Составить строку, содержащую первые буквы из каждого слова заданного предложения C++
Напечатать все слова, которые отличаются от последнего, но предварительно надо уничтожить из них все последующие вхождения первой буквы C++
C++ Напечатать в алфавитном порядке все слова, которые начинаются с большой буквы
C++ В тексте слова разделены запятыми,напечатать все слова в алфавитном порядке.
Напечатать все слова, в которых повторяется первая буква слова C++
Дана последовательность слов.Напечатать все слова, отличные от слова «по» C++
C++ Дана строка. Напечатать все слова из нее , отличные от слова hello

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
19.10.2010, 03:29     Напечатать все слова, входящие в эту текстовую строку, заканчивающиеся на буквы заданного слова (например, abcdab, ab, kab) #2
C
1
2
3
4
5
6
    char *p;
 
    for (p = strtok(line, " "); p != NULL; p = strtok(NULL, " "))
        if (strlen(p) >= strlen(pattern)
         && strcmp(p + strlen(p) - strlen(pattern), pattern) == 0)
            printf("%s" "\n", p);
Ka2r
Сообщений: n/a
19.10.2010, 17:06     Напечатать все слова, входящие в эту текстовую строку, заканчивающиеся на буквы заданного слова (например, abcdab, ab, kab) #3
Спасибо, аccept, сейчас попробую твой вариант!

Вожусь с третьей задачей. Пока отлаживаю программу только с одной строкой в документе. Результат работы - программа считает сколько всего символов в строке и недостаток до 80 заполняет буквами М Кто-нибудь подскажет где мой фейл?

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
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
{
char s[80];
char ss[80];
int str;
setlocale(0,"Russian");
char filename[255];
cout<<"Введите имя файла:"<<endl;
cin>>filename;
FILE *fp=fopen(filename,"r");
    if (fp!=NULL) cout<<"файл открыт";
 
    while(!feof(fp))
    {
        fgets(s,80,fp);
 
          str=strlen(s);
 
        if(str==80)
        {
            
        }
        else if (str<80)
        {
            
            int ch = 80-str;
            for (int i=0;i<ch;i++)
            {
                s[strlen(s)]=char("b");
            }
        }
        else 
        {
        }
 
 
    }
 
cout<<ss;
 
getch();
return(0);
}
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
20.10.2010, 05:44     Напечатать все слова, входящие в эту текстовую строку, заканчивающиеся на буквы заданного слова (например, abcdab, ab, kab) #4
видимо строкой считается набор символов до перевода строки
80 символов + перевод строки (одинарный или двойной) + нуль-символ

1. так что лучше считать в буфер длины 100
2. убедиться, что последний символ - перевод строки (иначе выход)
3. потом в другой буфер уже записать пробелы, строку, пробелы
4. и вывести этот другой буфер в файл-результат

между 2 и 3 удалить перевод строки (fgets() сохраняет)
вычислить количество пробелов в начале и в конце (для 79 куда ставить пробел?)
Yandex
Объявления
20.10.2010, 05:44     Напечатать все слова, входящие в эту текстовую строку, заканчивающиеся на буквы заданного слова (например, abcdab, ab, kab)
Ответ Создать тему
Опции темы

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