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

Распечатать все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
winelove
 Аватар для winelove
1 / 1 / 0
Регистрация: 10.05.2010
Сообщений: 71
04.06.2010, 09:33     Распечатать все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву. #1
Строки состоят из слов, разделенных пробелами. Распечатать все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву.
если можно с пояснениями на более простом языке без заморочек

Добавлено через 8 часов 45 минут
помогите кто-нибудь, срочно надо!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2010, 09:33     Распечатать все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву.
Посмотрите здесь:

C++ слова,начинающиеся и заканчивающиеся на одну и ту же букву
C++ Распечатать все слова нечетной длины, начинающиеся и оканчивающиеся на букву Т
Вывести все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву и количество таких слов в каждой строке. C++
C++ Вывести в выходной файл все слова, начинающиеся на заданную букву, и их количество
C++ Для строки объединить в отдельную строку все слова, имеющие заданную букву, разделив их одним пробелом
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
edd
36 / 36 / 0
Регистрация: 13.05.2010
Сообщений: 81
04.06.2010, 12:08     Распечатать все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву. #2
тебе совсем просто надо??? между словами один пробел??? строки из файла или с клавы
winelove
 Аватар для winelove
1 / 1 / 0
Регистрация: 10.05.2010
Сообщений: 71
04.06.2010, 12:10  [ТС]     Распечатать все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву. #3
чтобы код был понятен
qwarta
 Аватар для qwarta
56 / 56 / 5
Регистрация: 20.11.2009
Сообщений: 213
04.06.2010, 13:00     Распечатать все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву. #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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//  Строки состоят из слов, разделенных пробелами. Распечатать все слова из каждой 
//  строки, начинающиеся и заканчивающиеся на заданную букву.
 
#include <stdio.h>
#include <string.h>
 
#define STRLEN 25 //  кол-во символов в строке
#define NUM 10    //  кол-во строк
#define FIND " "  //  разделитель слов в строке
 
int main(void)
{
    int i,col;
    char *ptr,letter;
    char Strings[NUM][STRLEN];
    
    printf("Введите строки(Put strings)\n");
    for(i=0;i<NUM;i++)
    {
        if(!fgets(Strings[i],24,stdin))
           exit(1);
    }
    printf("Введите букву(Put letter)\n");
    letter=getchar();
    col=0;
    for(i=0;i<NUM;i++)
    {
//  делим строку на слова       
        for(ptr=strtok(Strings[i],FIND); ptr!=NULL; ptr=strtok(NULL,FIND))
        {
            col=strlen(ptr);          // длина слова-строки
//  проверяем, одинаковые ли первая и последная буквы слова
            if(ptr[0]==letter || ptr[col-1]==letter)
               printf("%s  ",ptr);
        }
    }
    printf("\n");
    getch();    
    return 0;
}
edd
36 / 36 / 0
Регистрация: 13.05.2010
Сообщений: 81
04.06.2010, 14:54     Распечатать все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву. #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
#include <string>
int main(){
string c,  temp;
    bool l=true;
    char a[256];cin.get(a,255);// строка
    c=a; c+="\n";
    char b; cin>>b; //буква
    int i=0;
    while (c[i]){
    if (l && c[i]==b) l=false;
    if (c[i]==' ') l=true; //так на всякий случай
    if (!l)  temp+=c[i]; 
    if (i>0){
    if (c[i]==' ' && c[i-1]!=b)  temp.clear();
    if (c[i]==' ' && c[i-1]==b) {cout<<temp<<" "; temp.clear();l=true;}
    if (c[i+1]=='\n' && c[i]==b) {cout<<temp<<endl;}}
    i++;}
    return 0;}
как еще короче и проще не знаю)))
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
04.06.2010, 16:05     Распечатать все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву. #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
#include <iostream>
#include <string>
#include <sstream>
#include <cctype>
 
inline bool this_word(const std::string & w) {
    return ( toupper(*w.begin()) == toupper(*w.rbegin()) );
}
 
int main(){
    std::string buf, tmp;
 
    while ( true ) {
        std::cout << "String (empty - quit): ";
        std::getline(std::cin, buf);
        if ( buf.empty() )
            break;
        std::istringstream ist(buf);
        while ( ist >> tmp )
            if ( this_word(tmp) )
                std::cout << tmp << std::endl;
        std::cout << std::endl;
    }
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2010, 23:05     Распечатать все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву.
Еще ссылки по теме:

Найти и вывести все слова начинающиеся и заканчивающиеся на одну и ту же букву (комментирование кода) C++
1. Скопировать из файла F1 в файл F2 строки, которые не содержат слова, начинающиеся на одну букву 2. Определить номер слова в котором больше всего г C++
Вывести строки, где есть слова, начинающиеся на букву а C++

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

Или воспользуйтесь поиском по форуму:
edd
36 / 36 / 0
Регистрация: 13.05.2010
Сообщений: 81
04.06.2010, 23:05     Распечатать все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву. #7
так короче но с наворотами)))

Добавлено через 6 часов 41 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
#include <string>
int main(){
string c,  temp;
char a[256];
cin.get(a,256);
char b; cin>>b;
bool l=true;
c=a; c+="\n";
    
    int i=0;
    while (c[i]){
    if (l && c[i]==b) l=false;
    if (c[i]==' ') l=true; //так на всякий случай
    if (!l)  temp+=c[i]; 
    if (i>0){
    if (c[i]==' ' && c[i-1]!=b)  temp.clear();
    if (c[i+1]=='\n' && c[i]==b && l) {cout<<temp<<endl;}
    if (c[i]==' ' && c[i-1]==b) {cout<<temp<<" "; temp.clear();l=true;}
    }
    i++;}
    return 0;}
булик один дописать нужно было, пардон
Yandex
Объявления
04.06.2010, 23:05     Распечатать все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву.
Ответ Создать тему
Опции темы

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