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

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

Войти
Регистрация
Восстановить пароль
 
edw1n
7 / 7 / 1
Регистрация: 12.11.2012
Сообщений: 114
#1

Окончание слова - xyz (СИ) - C++

22.04.2013, 17:07. Просмотров 1016. Ответов 4
Метки нет (Все метки)

Приветствую.
Нужно сделать программу, которая бы выводила на экран слова, окончания которых - xyz.
Программу нужно сделать при помощи массива строк, то есть вот инициализация и вывод на экран:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <string.h>
int main (void)
{ int n, i, j;
  printf ("Enter n\n");
  scanf ("%d", &n);
  char str[n+1][11];
  printf ("Enter words\n");
  for (i=0; i<n+1; i++)
      gets (str[i]);
  for (i=0; i<n+1; i++)
      puts (str[i]);
system ("pause");
return 0;
}
Есть идея отталкиваться от пробела, то есть мы начинаем прогонять каждое слово, и как только мы попадаем на пробел, то циклом if сравниваем предыдущий символ с z, ещё на один меньше с y и ещё на один меньше с x, если условие истинно, то выводим слово на экран. Но для этой реализации нужно знать длину каждого слова, и да, длинна каждого слова колеблется от 3 до 11 символов, а нужно знать точную длину каждого слова.
Есть идеи ? Заранее благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2013, 17:07     Окончание слова - xyz (СИ)
Посмотрите здесь:

Дан текстовый файл. Заменить окончание ing каждого слова, встречающегося в заданном предложении на ED и сохранить результат в новый файл. C++
Неожиданное окончание файла C++
В зависимости от введенного числа изменить окончание у слова C++
Для натурального числа k напечатать фразу «мы нашли k грибов в лесу», согласовав окончание слова «гриб» с числом k C++
C++ Вывести на экран слова с суфиксами XYZ
Окончание ввода C++
Окончание связанного списка C++
C++ Окончание файла
Пользователь вводит вещественные числа x,y,z. Вычислить max(x+y+z, xyz) C++
Окончание W и A в функциях C++
C++ Подобрать окончание слова в зависимости от числительного, его описывающего
C++ Проверка на окончание файла

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kranxx
0 / 0 / 0
Регистрация: 16.04.2013
Сообщений: 18
22.04.2013, 17:31     Окончание слова - xyz (СИ) #2
Почитай про библиотеку regex и регулярные выражения.
edw1n
7 / 7 / 1
Регистрация: 12.11.2012
Сообщений: 114
22.04.2013, 17:51  [ТС]     Окончание слова - xyz (СИ) #3
Спасибо. Почитал. Узнал теперь что можно в любую точку слова попасть и сравнивать, но как мне это сделать это для каждого слова своего массива слов ?
coloc
погромист
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
22.04.2013, 18:31     Окончание слова - xyz (СИ) #4
Вроде бы работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstring>
 
int main() {
    const char size = 5;
    int count;
    std::cin >> count;
    char buff[size][200];
    
    for( int i = 0; i < ( count > size ? size : count ); i++, count++ )
        std::cin >> buff[i];
        
    for( int i = 0; i < count; i++ ) {
        char *tmp = buff[i];
        tmp = tmp + strlen( buff[i] ) - 3;
        if( !strcmp( tmp, "xyz" ))
            std::cout << buff[i] << std::endl;
    }
    return 0;
}
edw1n
7 / 7 / 1
Регистрация: 12.11.2012
Сообщений: 114
22.04.2013, 18:47  [ТС]     Окончание слова - xyz (СИ) #5
Цитата Сообщение от coloc Посмотреть сообщение
Вроде бы работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstring>
 
int main() {
    const char size = 5;
    int count;
    std::cin >> count;
    char buff[size][200];
    
    for( int i = 0; i < ( count > size ? size : count ); i++, count++ )
        std::cin >> buff[i];
        
    for( int i = 0; i < count; i++ ) {
        char *tmp = buff[i];
        tmp = tmp + strlen( buff[i] ) - 3;
        if( !strcmp( tmp, "xyz" ))
            std::cout << buff[i] << std::endl;
    }
    return 0;
}
Спасибо. Пытаюсь разобраться.
Я так понимаю это ввод наших слов ?

C
1
2
for( int i = 0; i < ( count > size ? size : count ); i++, count++ )
        std::cin >> buff[i];
Можно его как-нибудь проще записать ?
И ещё, что делает переменная count ? Зачем её нужно вводить в начале работы программы ?
Yandex
Объявления
22.04.2013, 18:47     Окончание слова - xyz (СИ)
Ответ Создать тему
Опции темы

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