[ C / C++ ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. _visor_

    _visor_ New Member

    Joined:
    9 Oct 2011
    Messages:
    52
    Likes Received:
    4
    Reputations:
    1
    запихиваешь строку в какой то char[].
    а потом циклом.... ну примерно так:
    for(i=0;i<100;i++)
    if (char==" "&&char[i+1]=="A")
    << примерно так ты найдешь все слова которые начинаются на A.
     
  2. weInc

    weInc New Member

    Joined:
    29 Mar 2012
    Messages:
    40
    Likes Received:
    3
    Reputations:
    0
    Помогите разобраться

    Помогите пожалуйста вот с чем ...
    Как сделать поиск по ключевым словам в массиве или текстовом файле .. допустим есть фраза ( какая прекрасная погода ) и по слову погода выдает фразу и все вразы с этим словом ... :)
     
  3. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Функция strstr.
     
  4. weInc

    weInc New Member

    Joined:
    29 Mar 2012
    Messages:
    40
    Likes Received:
    3
    Reputations:
    0
    Ещё один вопрос .. а возможно ли как то сделать регистронезависимый поиск слов? Что бы А и а были одним и темже .. возможно ли такое? Просто не нашёл подобного ...
     
  5. _visor_

    _visor_ New Member

    Joined:
    9 Oct 2011
    Messages:
    52
    Likes Received:
    4
    Reputations:
    1
    функции:
    {
    tolower //delaet iz "A" v "a"
    toupper //delaet iz "a" v "A"
    isupper //proverka na upper
    isalpha //proverka esli bukva
    islower //proverka na lowwer
    } тебе в помощь )
    конечно же пример:
    ==================================
    PHP:
    #include <ctype.h>  //<<обязательно !

    int main ()
    {
      
    int i=0;
      
    char stroka[]="Moi Text.\n";
      
    char c;
      while (
    stroka[i])
      {
        
    c=str[i];
        
    putchar (tolower(c));
        
    i++;
      }
      return 
    0;
    }
    ====================================
    УДАЧИ !)
     
  6. AnGeI

    AnGeI Elder - Старейшина

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Каким образом в с++ можно корректно выводить число, помещенное в unsigned char, а то выводится символ:
    Code:
    unsigned char uc = 0xFF;
    cout << (int) uc;
    
     
  7. weInc

    weInc New Member

    Joined:
    29 Mar 2012
    Messages:
    40
    Likes Received:
    3
    Reputations:
    0

    Ну вроде все правильно

    Code:
    #include <iostream> 
     using namespace std;  
    
      int main(){ 
    
         unsigned char uc = 0xFF;
         cout << (int)uc;      
          
    cin.get();     
     cin.get();      
    return 0;  
    }  
    Выводит код символа 255, а по примеру:

    Code:
     unsigned char uc = 0xFF;      cout << (unsigned char)uc;     
    Выводит сам символ 255 тоесть пробел.. или я что то не понял..
     
  8. Neon_325

    Neon_325 New Member

    Joined:
    25 Mar 2012
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0


    а как прописать удаление-подскажите плиз... :confused:
     
  9. _visor_

    _visor_ New Member

    Joined:
    9 Oct 2011
    Messages:
    52
    Likes Received:
    4
    Reputations:
    1
    зависит от воображения )
    можно переместить к примеру слово в конец массива а потом уменьшить размер массива на X , Где X=длинна слова которую переместил )

    щас некогда писать пример (
     
  10. weInc

    weInc New Member

    Joined:
    29 Mar 2012
    Messages:
    40
    Likes Received:
    3
    Reputations:
    0
    Приветствую всех, помогите пж.. как можно взять подстроку из типа string, посимвольно не подходит либо я что то не так делаю...с циклами не помогает...на string strstr ругается...

    Нужен из текст поиск всей фразы через подстроку и вывод ее ..

    PHP:

    #include <iostream>
    #include <fstream>
    #include <locale>
    using namespace std;

    int main(){
        
        
    setlocale(LC_ALL,"Russian");
        
        
    char *fname = new char[60];
        
    char *cmp = new char[40];
        
    char *info = new char[1000];
        
    int *str = new int; *str 0;
        
    cout << "Fname:>";
        
    cin >> fname;
        
    cout << "Cmp:>";
        
    cin >> cmp;
        
        
    ifstream in;
        
    in.open(fname);
        
        if(!
    in.is_open()){
                             
    cout << "Файл не возможно открыть!" << endl;
                             }
                             
        while(
    in.good()){
                         
    in >> *info;
                         ++(*
    str);
                         }
                         
    cout << strstr(info,cmp);
                         
    printf("\n Символов %d",*str);
                         
        if(
    in.eof()){
                     
    cout << "Файл прочитан!" << endl;
                     }else if(
    in.fail()){
                     
    cout << "Неверный тип данных!" << endl;
                     }
                     
        if(*
    info == 0){
                 
    cout << "Файл пуст!" << endl;
                 }
                 
        
    in.close();
        
        
    cin.get();
        
    cin.get();
        return 
    0;
    }
     
        
        

     
     
    #7150 weInc, 2 Apr 2012
    Last edited: 2 Apr 2012
  11. Dialog

    Dialog New Member

    Joined:
    7 Aug 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Делаю ДЗ, застрял на одной проблеме. Если в главном меню сразу (после запуска) выбрать 7). Quit (выход), то меню выводится еще раз и только тогда, при повторном вводе 7, программа закрывается. При выборе альтернативного пункта (1-6) и последующего выбора 7 для выхода, программа закрывается без повторного вывода меню.

    Если изменить do while loop на while loop в:
    PHP:
    do {
                 
    main_menu();
          } while (
    main_menu() == true);
    то все происходит с точностью наоборот.

    PHP:
    #include <iostream>
    using namespace std;
    //Function Prototipes
    bool main_menu();
    bool isprime(int p);
    void getprimes(int arrayA[]);
    void getfibos(int arrayA[]);
    void getprimes_fibos(int arrayA[]);
    void getprimes_notfibos(int arrayA[]);
    void getfibos_notprimes(int arrayA[]);
    int limiter;

    //Data
    int primes[1000];
    int fibos[1000] = {01123581321345589144233377610987};

    int primes_fibos[500] = {2351389233};

    int primes_notfibos[500] = {711171923293137414347535961677173798397
        
    101103107109113127131137139149151157163167173179181191193197199211
        
    223227229239241251257263269271277281283293307311313317331337347
        
    349353359367373379383389397401409419421431433439443449457461463467
        
    479487491499};

    int fibos_notprimes[500] = {01138213455144377610987};

    int main () {
        
    int upperlower;
        
    //Generating Primes
        
    cout <<"Enter the upper limit: "cin >> limiter;

        
    int count 0;
        for (
    int a 2<= limitera++)
        {
            
    int c 0;
            for (
    int b 2<= a/2b++)
            {
                if (
    == 0)
                {
                    
    1;
                    break;
                }
            }
            if (!
    c
                
    primes[count++] = a;
        }
        do {
            
    main_menu();
        } while (
    main_menu() == true);
            
    }
    //Main Menu
    bool main_menu()
    {
        
    int choice;
        
    cout <<"Choose one of the following by entering the corresponding number:\n";
        
    cout <<"1). Display prime numbers\n";
        
    cout <<"2). Display Fibonacci numbers\n";
        
    cout <<"3). Display prime numbers that are also part of the Fibonacci series\n";
        
    cout <<"4). Display prime numbers that are not part of the Fibonacci series\n";
        
    cout <<"5). Display Fibonacci numbers that are not prime numbers\n";
        
    cout <<"6). Search for a number\n";
        
    cout <<"7). Quit\n";
        
    cout <<"Enter selection: "cin >> choice;
        if (
    choice || choice 7)
        {
            do {
                
    cout <<endl;
                
    cout <<"Invalid Entry!\n";
                
    cout <<"Choose one of the following by entering the corresponding number:\n";
                
    cout <<"1). Display prime numbers\n";
                
    cout <<"2). Display Fibonacci numbers\n";
                
    cout <<"3). Display prime numbers that are also part of the Fibonacci series\n";
                
    cout <<"4). Display prime numbers that are not part of the Fibonacci series\n";
                
    cout <<"5). Display Fibonacci numbers that are not prime numbers\n";
                
    cout <<"6). Search for a number\n";
                
    cout <<"7). Quit\n";
                
    cout <<"Enter selection: "cin >> choice;
            } while (
    choice || choice 7);
        }
        switch (
    choice
        {
        case 

            
    getprimes(primes);
            return 
    true;
            break;
        case 

            
    getfibos(fibos);
            return 
    true;
            break;
        case 

            
    getprimes_fibos(primes_fibos);
            return 
    true;
            break;
        case 

            
    getprimes_notfibos(primes_notfibos);
            return 
    true;
            break;
        case 

            
    getfibos_notprimes(fibos_notprimes);
            return 
    true;
            break;
        case 

            
    cout <<"Didn't finish this part.\n";
            return 
    true;
            break;
        case 

            return 
    false;
            break;
        }
    }

    bool isprime (int p)
    {
        for(
    int i 2p; ++i)
            if(
    == 0)
                return 
    false;
        return 
    true;
    }

    void getprimes(int arrayA[])
    {
        
    int lowerupper;
        
    cout <<"Enter upper and lower limit: "cin >> lowercin >> upper;
        
    bool keepGoing true;
        
    int i lower;

        while (
    keepGoing)
        {
            if (
    arrayA[i] <= upper)
            {
                
    cout <<arrayA[i] <<" ";
                
    i++;
            }
            else
                
    keepGoing false;
        }
        
    cout <<endl;
        
    cout << <<" numbers met the criteria.\n";
        
    cout <<endl;
    }

    void getfibos(int arrayA[])
    {
        
    int lowerupper;
        
    cout <<"Enter upper and lower limit: "cin >> lowercin >> upper
        
    bool keepGoing true;
        
    int i 0;
        while (
    keepGoing)
        {
            if (
    arrayA[i] >= lower && arrayA[i] <= upper)
            {
                
    cout <<arrayA[i] <<" ";
                
    i++;
            }
            else
                
    keepGoing false;
        }
        
    cout <<endl;
        
    cout << <<" numbers met the criteria.\n";
        
    cout <<endl;
    }

    void getprimes_fibos(int arrayA[])
    {
        
    int lowerupper;
        
    cout <<"Enter upper and lower limit: "cin >> lowercin >> upper
        
    bool keepGoing true;
        
    int i 0;
        while (
    keepGoing)
        {
            if (
    arrayA[i] >= lower && arrayA[i] <= upper)
            {
                
    cout <<arrayA[i] <<" ";
                
    i++;
            }
            else
                
    keepGoing false;
        }
        
    cout <<endl;
        
    cout << <<" numbers met the criteria.\n";
        
    cout <<endl;
    }

    void getprimes_notfibos(int arrayA[])
    {
        
    int lowerupper;
        
    cout <<"Enter upper and lower limit: "cin >> lowercin >> upper
        
    bool keepGoing true;
        
    int i 0;
        while (
    keepGoing)
        {
            if (
    arrayA[i] >= lower && arrayA[i] <= upper)
            {
                
    cout <<arrayA[i] <<" ";
                
    i++;
            }
            else
                
    keepGoing false;
        }
        
    cout <<endl;
        
    cout << <<" numbers met the criteria.\n";
        
    cout <<endl;
    }

    void getfibos_notprimes(int arrayA[])
    {
        
    int lowerupper;
        
    cout <<"Enter upper and lower limit: "cin >> lowercin >> upper
        
    bool keepGoing true;
        
    int i 0;
        while (
    keepGoing)
        {
            if (
    arrayA[i] >= lower && arrayA[i] <= upper)
            {
                
    cout <<arrayA[i] <<" ";
                
    i++;
            }
            else
                
    keepGoing false;
        }
        
    cout <<endl;
        
    cout << <<" numbers met the criteria.\n";
        
    cout <<endl;
    }
     
    #7151 Dialog, 3 Apr 2012
    Last edited: 3 Apr 2012
  12. Dialog

    Dialog New Member

    Joined:
    7 Aug 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Исправил.
     
  13. \\ChaOs//

    \\ChaOs// Member

    Joined:
    26 Feb 2009
    Messages:
    102
    Likes Received:
    26
    Reputations:
    5
    Сразу бы так. Смотри:

    PHP:
    do {
            
    main_menu();
        } while (
    main_menu() == true);
    Здесь ты вызываешь функцию с меню, а после опять её вызываешь и проверяешь значение. Еще раз. Первое возвращаемое значение ты пропускаешь, и вызываешь функцию для проверки значения 2-й раз.

    Это должно решить проблему:
    PHP:
    bool retcode;
    do {
            
    retcode main_menu();
        } while (
    retcode == true);
    Можно вообще так:

    PHP:
    while( main_menu() );
     
    #7153 \\ChaOs//, 3 Apr 2012
    Last edited: 3 Apr 2012
  14. Dialog

    Dialog New Member

    Joined:
    7 Aug 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Как же я такую ошибку сделал..
    Большое спасибо!
     
  15. weInc

    weInc New Member

    Joined:
    29 Mar 2012
    Messages:
    40
    Likes Received:
    3
    Reputations:
    0
    Народ..какие альтернативы есть setlocale(LC_ALL,"Russian"); ?

    В windows 7 нормально отображает, но эта же программа в XP в символах вместо русский букв.
     
  16. \\ChaOs//

    \\ChaOs// Member

    Joined:
    26 Feb 2009
    Messages:
    102
    Likes Received:
    26
    Reputations:
    5
    weInc, у меня что на XP, что на 7 всегда работало следующее:
    setlocale(LC_ALL, ".1251");
     
  17. weInc

    weInc New Member

    Joined:
    29 Mar 2012
    Messages:
    40
    Likes Received:
    3
    Reputations:
    0
    Спасибо, но не помогло, компилятор code::blocks что dev C++ не дает нужного результата ..

    SetConsoleOutputCP(1251) ; тоже краказябры показывает,
    ещё раз скажу в w7 все нормально а в xp проблема..
     
  18. _visor_

    _visor_ New Member

    Joined:
    9 Oct 2011
    Messages:
    52
    Likes Received:
    4
    Reputations:
    1
    Цель:Рисование круга радиусом X на указном месте в окне, к примеру, щелкаем 2 раза где то в окне и там рисуется круг.
    Вопрос:как это делается? (как рисовать круг я знаю... интересует перехват X Ycoord и вызов функций рисования...)
    и еще вопрос по сложнее в идеале эти круги должны быть интерактивными тоесть перемещать/удалять их в окне. (мышкой желательно)
    и вопрос для тех кто очень хорош в этом, надо сделать еще линий которые могли бы "прилипать" к кругам...
    ------------------------
    могу показать пример программы, только ехе , без исходников для лучшего понимания задачи.
    -----------------------
    сделать надо на Microsoft Visual Studio C++
     
  19. \\ChaOs//

    \\ChaOs// Member

    Joined:
    26 Feb 2009
    Messages:
    102
    Likes Received:
    26
    Reputations:
    5
    weInc, вывод в юникоде осуществляешь?
     
  20. weInc

    weInc New Member

    Joined:
    29 Mar 2012
    Messages:
    40
    Likes Received:
    3
    Reputations:
    0
    В ASCII
     
Thread Status:
Not open for further replies.