Символы

Тема в разделе "C/C++/C#", создана пользователем Miller85, 28 фев 2011.

  1. Miller85

    Miller85 Гость

    Всем привет... Ребят у меня такая проблемма... Значит дан числовой отрезок от 0123456789... если я введу допустим 123 то он должен выдать что является отрезком 0123456789... если я введу например 134 или 023 или 891 и т.д... то он соответственно не является отрезком 0123456789...
     
  2. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    Можно через строки вариант с помощью
     
  3. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    А проблема в чем?
     
  4. Miller85

    Miller85 Гость

    Проблема в том что не могу сообразить как это сделать... Помогите плиз надо до 16 часов сделать а там зачет
     
  5. ierofant

    ierofant Гость

    Ещё есть более C++-овый вариант с алгоритмом std::search:
    Код (C++):
    #include <iostream>
    #include <algorithm>

    int main ()
    {
    std::string str1, str2;
    std::cout << "Введите числовой отрезок: ", std::cin >> str1;
    std::cout << "Введите часть отрезка: ", std::cin >> str2;

    if (std::search (str1.begin (), str1.end (), str2.begin(), str2.end ()) != str1.end ()) std::cout << "Часть отрезка входит в исходный отрезок" << std::endl;
    else std::cout << "Часть отрезка не входит в исходный отрезок" << std::endl;

    return 0;
    }
     
  6. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Это сложно?

    Код (C++):
    #include <iostream.h>

    char *  A = "0123456789";
    char *  B = "456";

    int main()
    {
    for ( int i = 0; i < strlen( A ) - strlen( B ); i++ ) {
    if ( !strncmp( &A[i], B, strlen( B ) ) ) {
    cout << "ok" << endl;
    return 1;
    }
    }
    cout << "xep" << endl;
    return 0;
    }
     
  7. Miller85

    Miller85 Гость

    Чо то не один не работает... Не дает скомпилировать... У ierofant выдает ошибку на >>... у тебя lazybiz просит какойто прототип на strlen( A ) и !strncmp
     
  8. ierofant

    ierofant Гость

    "У ierofant выдает ошибку на >>"

    В какой именно строке?
     
  9. Miller85

    Miller85 Гость

    std::cout << "Введите числовой отрезок: ", std::cin >> str1;
    std::cout << "Введите часть отрезка: ", std::cin >> str2;
     
  10. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Добавь в начало:
    Код (C++):
    #include <string.h>
     
  11. Miller85

    Miller85 Гость

    Лудче что бы работала и в С++3.1 если не сложно
     
  12. ierofant

    ierofant Гость

    У меня добавь #include <string>

    Добавлено: И вообще с недостающими заголовочниками мог бы и сам разобраться. И так всё на блюдечке принесли..
     
  13. Miller85

    Miller85 Гость

    Бааальшое спасибо Вам!!! Выручили...
     
  14. Miller85

    Miller85 Гость

    Такой вопрос у меня С++ 3.1 не понимает библиотеку #include <algorithm>... Какой можно заменить альтернативой... Просто зачет и работу я буду сдавать именно в С++ 3.1?
     
  15. ierofant

    ierofant Гость

    Что такое C++ 3.1 ? Такого стандарта не существует. Есть стандарты C++98, С++03, C++0x.
    Вы, наверно, имеете в виду компилятор Borland С++ 3.1. Так он был выпущен ещё в 1992 году, ещё для принятия первого стандарта. Он настолько стар, что не поддерживает ни один официальный стандарт, и вашему учебному заведению должно быть стыдно пользоваться им.
    algorithm - входит в стандартную поставку к любому компилятору начиная с C++98. Но в те далёкие времена его не существовало. Вам придётся обходится функциями унаследованными от языка C. Смотрите вариант lazybiz.

    Добавлено: Или как OKEN, советовала функцию strstr, которая так же унаследована от языка C и очень похожа по своему назначению на std::search.
     
  16. Miller85

    Miller85 Гость

    Понял... Не могу разобраться по варианту lazybiz как за место В Вставить отрезок введенный пользователем... Подскажи
     
  17. ierofant

    ierofant Гость

    Вопросы у тебя, конечно... Хоть немного бы книжки почитал, что ли.. Вот, я через strstr сделал.
    Код (C++):
    #include <iostream>
    #include <string>
    #include <string.h>

    int main ()
    {

    std::string str1, str2;
    std::cout << "Введите числовой отрезок: ", std::cin >> str1;
    std::cout << "Введите часть отрезка: ", std::cin >> str2;

    if (strstr (str1.c_str (), str2.c_str ())) std::cout << "Часть отрезка входит в исходный отрезок" << std::endl;
    else std::cout << "Часть отрезка не входит в исходный отрезок" << std::endl;

    return 0;
    }
     
  18. Miller85

    Miller85 Гость

    Да не я разобрался уже спасибо...
     
  19. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Код (C++):
    #include <iostream.h>
    #include <string.h>

    int main()
    {
    char    A[256];
    char    B[64];
    cout << "Введите числовой отрезок: "; cin >> A;
    cout << "Введите часть отрезка: "; cin >> B;
    for ( int i = 0; i < strlen( A ) - strlen( B ); i++ ) {
    if ( !strncmp( &A[i], B, strlen( B ) ) ) {
    cout << "Часть отрезка входит в исходный отрезок" << endl;
    return 1;
    }
    }
    cout << "Часть отрезка не входит в исходный отрезок" << endl;
    return 0;
    }
     
Загрузка...
Похожие Темы - Символы
  1. sergik78ua
    Ответов:
    3
    Просмотров:
    1.371
  2. susinmn
    Ответов:
    2
    Просмотров:
    1.160
  3. Мыш
    Ответов:
    22
    Просмотров:
    4.511
  4. shisik
    Ответов:
    1
    Просмотров:
    2.299
  5. eugira
    Ответов:
    2
    Просмотров:
    3.314

Поделиться этой страницей