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

Ваш аккаунт

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

Последние темы форума

Показать новые сообщения »

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

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

Дана строка, состоящая из слов разделенных пробелами. Вывести на экран порядковый номер слова максмимальной длины и номер позиции строки, с которой оно начинается.

88K
28 мая 2015 года
Beka-94
2 / / 27.05.2015
Подскажите как сделать.
Дана строка, состоящая из слов разделенных пробелами. Вывести на экран порядковый номер слова максмимальной длины и номер позиции строки, с которой оно начинается.
15K
28 мая 2015 года
xAtom
64 / / 17.01.2011
Код:
#include <iostream>
#include <cctype>
using namespace std;


unsigned indexOf(const char* s, unsigned& n, unsigned& l){
    unsigned  k, a, b = 0, i  = (unsigned)-1;
    const char* p, *t = s;

    n = k = 0;
    do {
        while(*s && ! isalpha(*s))
            ++s;

        p = s + 1;
        while(isalpha(*p))
            ++p;

        a = (unsigned)(p - s);
        if(a > b){
            b = a;
            i = (unsigned)(s - t);
            l = i + a;
            n = k;
        }
        s = p;
        ++k;

    } while(*s != '');
    return i;
}


int main(void){
    char s[] = "Venus, Earth, Mercury, Mars";
   
    unsigned n, e;
    unsigned p = indexOf(s, n, e);
    if(p != (unsigned)-1){
        cout << "word at: " << n << endl;
        cout << "index:   " << p << endl;
        cout << "word:    ";
        cout.write(s + p, (int)(e - p));
    }
    return 0;
}
Проверка кода. http://codepad.org/Fk40EnLt

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог