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

Ввести строку s, найти и вывести слова заканчивающиеся подстрокой s2 - C++

Восстановить пароль Регистрация
 
Нубик_я
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 22
27.08.2012, 20:41     Ввести строку s, найти и вывести слова заканчивающиеся подстрокой s2 #1
прошу вас сделать без использования библиотек, просто с использованием цикла и условий, поиск юзал ничего того, что одобрит преподаватель не нашел
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2012, 20:41     Ввести строку s, найти и вывести слова заканчивающиеся подстрокой s2
Посмотрите здесь:

Ввести строку, вывести слова по алфавиту. C++
Напечатать все слова, входящие в эту текстовую строку, заканчивающиеся на буквы заданного слова (например, abcdab, ab, kab) C++
C++ Ввести строку и слово, удалить все вхождения слова и вывести строку
Ввести строку , вывести только слова, заканчивающиеся на гласную букву. C++
C++ Ввести строку. Вывести строку так, чтобы за каждым словом следовало количество пробелов, равное длине слова.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
27.08.2012, 20:45     Ввести строку s, найти и вывести слова заканчивающиеся подстрокой s2 #2
В строке с найти количество слов заканчивающихся подстрокой с2
Нубик_я
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 22
27.08.2012, 20:49  [ТС]     Ввести строку s, найти и вывести слова заканчивающиеся подстрокой s2 #3
к сожалению ни один из этих вариантов программы преподаватель не принял( просит еще больше все упростить(
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
27.08.2012, 20:51     Ввести строку s, найти и вывести слова заканчивающиеся подстрокой s2 #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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
 
#define N 6
 
int main()
{
    static char *str1 = "work ignition time moment distortion task complition";
    static char *str2 = "tion";
 
    char* buf = str1;
    while ((buf = strstr(buf,str2)) != NULL)
        if (!isspace(*(buf-1)))
        {
            char word[256] = ""; int i = 0;
            while (!isspace(*buf)) *buf--; *buf++;
            while (!isspace(*buf)) word[i++] = *buf++;
            printf("%s\n",word);
        }
 
    _getch();
 
    return 0;
}
http://liveworkspace.org/code/6d4f08...0d66d73872a893
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
27.08.2012, 20:58     Ввести строку s, найти и вывести слова заканчивающиеся подстрокой s2 #5
Нубик_я, там пять вариантов решения этой задачи. Если вы не можете защитить код (т.е. объяснить как и что работает), то думаю пора бы подумать о книгах по этой теме.
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
27.08.2012, 21:23     Ввести строку s, найти и вывести слова заканчивающиеся подстрокой s2 #6
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
 
#define N 6
 
int main()
{
    static char str1[256] = "work ignition time tion moment distortion task complition";
    static char str2[256] = "tion";
 
    for (int i = 0; str1[i] != '\0'; i++)
    {
        bool diff = false;
        for (int k = 0; str2[k] != '\0' && !diff; k++)
            diff = str1[i+k] != str2[k] ? 1 : 0;
 
        if (diff == false && str1[i-1] != ' ')
        {
            int q = i, x = 0; char word[256] = "";
            while (str1[q] != ' ' && q >= 0) q--;
            for (int m = q+1; str1[m] != ' ' && str1[m] != '\0'; m++)
                word[x++] = str1[m];
 
            i+=strlen(str2);
 
            printf("%s\n",word);
        }
    }
 
    _getch();
 
    return 0;
}
http://liveworkspace.org/code/7f8fc3...e8aff57ad4916a
Yandex
Объявления
27.08.2012, 21:23     Ввести строку s, найти и вывести слова заканчивающиеся подстрокой s2
Ответ Создать тему
Опции темы

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