Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

2 строки, 4 слова, сравнение длины [C++]

29K
02 ноября 2007 года
dim88
9 / / 02.11.2007
Всем здравствуйте (:

Была задачка - сравнить в двух строчках длину последних слов. Процедуру написать самому. Готово:

Код:
#pragma hdrstop
#pragma argsused
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>

int prov (char *str);
void main ()
{
char A[20], B[20];
int l1, l2;

puts("\n Input A:\n");
gets(A);
puts("\n Input B:\n");
gets(B);

l1=prov(A);
l2=prov(B);

if(l1>l2)
printf("\n pervoe slovo dlinnee");
else
{ if(l1==l2)
printf("\n slova ravnu");
else printf("\n vtoroe slovo dlinnee");
}
getch();
}

int prov (char *str)
{int i,l;
l=strlen(str);
for(i=l;i>=0;i=i-1)
if(str==' ')
return(l-i-1);
return(l);
}


Теперь задача: для каждой последовательности сравнить длины первых и последних слов. Немного попал в ступор (: Подскажите пожалуйста (:
2.9K
02 ноября 2007 года
RYM
109 / / 06.06.2005
Наверное будет так:)

Код:
#include <stdio.h>
#include <conio.h>
#include <string.h>

int prov (char *str);
void main ()
{
char A[20];

puts("\n Input A:\n");
gets(A);

switch(prov(A)){
case 1: printf(" 1 slovo > poslednego "); break;
case -1: printf(" poslednee slovo > 1 "); break;
case 0: printf(" 1 slovo = poslednemu "); break;
}
getch();
}
int prov (char *str)
{int i,l;
l=strlen(str);
for(i=l;i>=0;i=i-1)
if(str==' ') break;
l-=i+1;
for(i=0;i<l;i++)
if(str==' ') break;
if(l<i) return 1; else
if (l>i) return -1; else
return 0;

}
320
02 ноября 2007 года
m_Valery
1.0K / / 08.01.2007
Цитата: dim88

...
Теперь задача: для каждой последовательности сравнить длины первых и последних слов. Немного попал в ступор (: Подскажите пожалуйста (:


Почему ты не используешь С++ ? Этот пример - классика из Бьерна Страуструпа или Стэнли Липпмана.Вот решение сразу 2 задач.

Код:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    string str1,str2;
    vector<string> coll1,coll2;
    cout<<"Input 1-st string : "<<' ';
    getline(cin,str1,'\n');  
    string::size_type pos = 0,prev_pos = 0;
    while(( pos = str1.find_first_of(' ',pos))
        != string::npos )
    {
        coll1.push_back(str1.substr(prev_pos,pos - prev_pos));
        prev_pos = ++pos;
    }
    coll1.push_back(str1.substr(prev_pos,pos - prev_pos));
    cout<<"Input 2-nd string : "<<' ';
    getline(cin,str2,'\n');  
    pos = 0,prev_pos = 0;
    while(( pos = str2.find_first_of(' ',pos))
        != string::npos )
    {
        coll2.push_back(str2.substr(prev_pos,pos - prev_pos));
        prev_pos = ++pos;
    }
    coll2.push_back(str2.substr(prev_pos,pos - prev_pos));
    if(coll1.back().size() < coll2.back().size())
     cout<<"word : "<<coll2.back()<<" > "<<coll1.back()<<endl;
    else if(coll1.back().size() == coll2.back().size())
        cout<<coll1.back()<<" = "<<coll2.back()<<endl;
    else
        cout<<"word : "<<coll1.back()<<" > "<<coll2.back()<<endl;
    if(coll1.back().size() < coll1[0].size())
     cout<<"word : "<<coll1[0]<<" > "<<coll1.back()<<endl;
    else if(coll1.back().size() == coll1[0].size())
        cout<<coll1.back()<<" = "<<coll1[0]<<endl;
    else
        cout<<"word : "<<coll1.back()<<" > "<<coll1[0]<<endl;
    if(coll2.back().size() < coll2[0].size())
     cout<<"word : "<<coll2[0]<<" > "<<coll2.back()<<endl;
    else if(coll2.back().size() == coll2[0].size())
        cout<<coll2.back()<<" = "<<coll2[0]<<endl;
    else
        cout<<"word : "<<coll2.back()<<" > "<<coll2[0]<<endl;
    return 0;
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог