Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Programy sprawdzające występowanie znaków.

dvn 29 Lis 2010 00:35 776 4
  • #1 29 Lis 2010 00:35
    dvn
    Poziom 8  

    Witam. Mam do napisania dwa programy. Piszę w dev c++. Niestety poległem, a potrzebuję tego w tempie dość szybkim, dlatego proszę Was o pomoc.
    #1
    Ma sprawdzać i wypisać która wielka i mała litera została najczęściej wypisana.
    Np. piszemy jaKISSSSrandomowyTekstttttt
    , więc S: 4, t:6;

    #2
    Ma zliczać i wypisywać znaki specjalne użyte.
    Np. Jestem głupi i nie potrafie programowac!!111~~~~@@@!
    wypisze:
    !:3
    ~:4
    @:3

    0 4
  • #2 29 Lis 2010 10:54
    arnoldziq
    Moderator Programowanie

    Proszę pokazać dotychczasowy postęp prac.
    Zaczął kolega tworzyć ten kod?
    Z czym kolega ma największy problem?

    0
  • #3 29 Lis 2010 16:40
    dvn
    Poziom 8  

    Np w tym drugim zadaniu mam coś takiego

    Code:
    #include <stdio.h>
    
    #include <stdlib.h>
    #include <strings.h>

    #include <iostream>

    using namespace std;
    int main()
    {
        char napis[] = {'32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '91', '92', '93', '94', '95', '96', '123', '124', '125', '126', '\0'};
        int i=0, a, ile;
        cout<<"zliczanie znakow specjalnyhc ";                 
        cin.getline(napis,MAX_PATH); cout<<endl;
        while(napis[i] != '\0')
        {
            a=0, ile=0;
            do
            {
                if(napis[i] == napis[a])
                {
                    ile++;
                }
            }
            while(napis[a++] != '\0');
            cout<<"znak: ["<<napis[i] <<"] wystapila: " <<ile <<" razy"<<endl;
            i++;
        }
        cout<<"\n\n";
        system("pause");
    }



    Nie wiem jak zmienić, aby zliczało tylko znaki specjalne (numery w ascii tych znaków wpisałem do tablicy, ale nadal nie działa).

    Proszę pamiętać o używaniu znaczników code. - arnoldziq

    0
  • #4 29 Lis 2010 18:56
    Dżyszla
    Poziom 42  

    To źle wpisałeś. Znak o kodzie ASCII podaje się tak, jak zapisałeś w ostatnim elemencie tablicy (porzedza się wartość znakiem \). Możesz alternatywnie podać wartość wprost (bez apostrofów, gdyż te oznaczają znak lub ciąg znaków).

    0
  • #5 30 Lis 2010 13:00
    ed-ek
    Poziom 34  

    Podaję kod wyliczenia częstości występowamia małych liter w tekście. Dodając kilka linii policzysz duże litery.

    Code:

    #include <iostream>
    #include <conio.h>
    using namespace std;
     int mala[26],duza[26];
    int main()
    {
      string st; 
      char ch;
      int dl,i,j;
      cout<<"podaj tekst"<<endl;
      getline(cin,st);
       dl=st.length();
                 
        for(i=0;i<dl;i++)
         {
          ch=st[i];       
          if((ch>='a')&&(ch<='z'))mala[ch-97]=mala[ch-97]+1 ;
            for(j=i+1;j<dl;j++)
             {
                 
             if((st[j]==ch)&&((st[j]>='a')&&(st[j]<='z')))
              {
               st[j]='1';                                       
               mala[ch-97]=mala[ch-97]+1;
               }
             }
          }       
       for(i=0;i<26;i++)
        {
          if(mala[i]>0)             
          cout<<char(97+i)<<" "<<mala[i]<<" razy"<<endl;                             
        }
     getch();
     return 0;   
    }

    Mam nadzieję że Ci pomogłem.

    0