Advertisement
Guest User

CPP_materiały do tablic

a guest
Nov 29th, 2015
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.96 KB | None | 0 0
  1. /*----------------------------------------------------------------------------
  2.  napisy.cpp
  3.  
  4.  Program prezentuje sposob przetwarzania tablic znakowych. W programie celowo
  5.  nie uzyto funkcji bibliotecznych (string.h, ctype.h) -- operacje
  6.  przetwarzania napisow i identyfikowania znakow wykonano "na piechote".
  7.  
  8.  Program zawiera algorytmy operujace na tablicach w "klasyczy", indeksowy
  9.  sposob.
  10.  
  11.  Po implementacji tego programu warto przejrzec informacje dotyczace funkcji
  12.  i makr zawartych w bibliotekach identyfikowanych przez naglowki string.h
  13.  i ctype.h.
  14. ----------------------------------------------------------------------------*/
  15.  
  16. #include <iostream>
  17. #include <cstdlib>
  18. using namespace std;
  19.  
  20. #define MAX_LEN 128
  21.  
  22. /*----------------------------------------------------------------------------
  23.   int str_len( char s[] )
  24.  
  25.   Funkcja:
  26.   Wlasna implementacja funkcji wyznaczajacej dlugosc napisu liczona w znakach
  27.  
  28.   Parametry:
  29.     char s[] -- tablica zawierajaca napis ktorego dlugosc jest wyznaczana
  30.  
  31.   Rezultat:
  32.     dlugosc napisu liczona w znakach
  33. ----------------------------------------------------------------------------*/
  34. int str_len( char s[] )
  35. {
  36.   // Do zrobienia :)
  37. }
  38.  
  39. /*----------------------------------------------------------------------------
  40.   int lwr_str_cnt( char s[] )
  41.  
  42.   Funkcja:
  43.     Wyznacza liczbe malych liter w napisie s
  44.  
  45.   Parametry:
  46.     char s[] -- tablica zawierajaca napis
  47.  
  48.   Rezultat:
  49.     Liczba malych liter w napisie s
  50. ----------------------------------------------------------------------------*/
  51. int lwr_str_cnt( char s[] )
  52. {
  53.   // Do zrobienia :)
  54. }
  55.  
  56. /*----------------------------------------------------------------------------
  57.   int upr_str_cnt( char s[] )
  58.  
  59.   Funkcja:
  60.     Wyznacza liczbe duzych liter w napisie s
  61.  
  62.   Parametry:
  63.     char s[] -- tablica zawierajaca napis
  64.  
  65.   Rezultat:
  66.     Liczba duzych liter w napisie s
  67. ----------------------------------------------------------------------------*/
  68. int upr_str_cnt( char s[] )
  69. {
  70.   // Do zrobienia :)
  71. }
  72.  
  73.  
  74. /*----------------------------------------------------------------------------
  75.   int dgt_str_cnt( char s[] )
  76.  
  77.   Funkcja:
  78.     Wyznacza liczbe cyfr w napisie s
  79.  
  80.   Parametry:
  81.     char s[] -- tablica zawierajaca napis
  82.  
  83.   Rezultat:
  84.     Liczba cyfr w napisie s
  85. ----------------------------------------------------------------------------*/
  86. int dgt_str_cnt( char s[] )
  87. {
  88.   // Do zrobienia :)
  89. }
  90.  
  91. /*----------------------------------------------------------------------------
  92.   int nalpha_str_cnt( char s[] )
  93.  
  94.   Funkcja:
  95.     Wyznacza liczbe liter i cyfr w napisie s
  96.  
  97.   Parametry:
  98.     char s[] -- tablica zawierajaca napis
  99.  
  100.   Rezultat:
  101.     Liczba liter i cyfr w napisie s
  102. ----------------------------------------------------------------------------*/
  103. int nalpha_str_cnt( char s[] )
  104. {
  105.   // Do zrobienia :)
  106. }
  107.  
  108. /*----------------------------------------------------------------------------
  109.   int chr_str_cnt( char c, char s[] )
  110.  
  111.   Funkcja:
  112.     Wyznacza liczbe wystapien znaku c w s
  113.  
  114.   Parametry:
  115.     char c   -- znak poszukiwany w napisie
  116.     char s[] -- tablica zawierajaca napis
  117.  
  118.  
  119.   Rezultat:
  120.     Liczba wystapien znaku c w napisie s
  121. ----------------------------------------------------------------------------*/
  122. int chr_str_cnt( char c, char s[] )
  123. {
  124.   // Do zrobienia :)
  125. }
  126.  
  127. /*----------------------------------------------------------------------------
  128. int chr_str_pos( char c, char s[] )
  129.  
  130.   Funkcja:
  131.     Wyznacza indeks (pozycje w napisie) pierwszego wystapienia znaku c w s
  132.  
  133.   Parametry:
  134.     char c   -- znak poszukiwany w napisie
  135.     char s[] -- tablica zawierajaca napis
  136.  
  137.  
  138.   Rezultat:
  139.     Pozycja znaku w tablicy liczona od 0 lub -1 gdy znak nie znaleziony
  140. ----------------------------------------------------------------------------*/
  141. int chr_str_pos( char c, char s[] )
  142. {
  143.   // Do zrobienia :)
  144. }
  145.  
  146. /*----------------------------------------------------------------------------
  147.   int chr_str_cnt( char c, char s[] )
  148.  
  149.   Funkcja:
  150.     Wyznacza indeks (pozycje w napisie) ostatniego wystapienia znaku c w s
  151.  
  152.   Parametry:
  153.     char c   -- znak poszukiwany w napisie
  154.     char s[] -- tablica zawierajaca napis
  155.  
  156.  
  157.   Rezultat:
  158.     Pozycja znaku w tablicy liczona od 0 lub -1 gdy znak nie znaleziony
  159. ----------------------------------------------------------------------------*/
  160. int chr_str_rpos( char c, char s[] )
  161. {
  162.   // Do zrobienia :)
  163. }
  164.  
  165. /*----------------------------------------------------------------------------
  166.   void str_rev( char s[] )
  167.  
  168.   Funkcja:
  169.     Odwraca kolejnosc znakow w tablicy s
  170.  
  171.   Parametry:
  172.     char s[] -- tablica zawierajaca napis
  173.  
  174.   Rezultat:
  175.     Brak
  176. ----------------------------------------------------------------------------*/
  177. void str_rev( char s[] )
  178. {
  179.   // Do zrobienia :)
  180. }
  181.  
  182. // Ten main bedzie dzialal po prawidlowym zaimplementowaniu powyzszych funkcji
  183. int main()
  184. {
  185.   char line[ MAX_LEN ];
  186.   char c;
  187.   int pos;
  188.  
  189.   cout << "\n\nWpisz linie tekstu: ";
  190.   cin.getline( line, MAX_LEN );
  191.  
  192.   cout << "\nLiczba znakow        : " << str_len( line );
  193.   cout << "\nLiczba malych liter  : " << lwr_str_cnt( line );
  194.   cout << "\nLiczba duzych liter  : " << upr_str_cnt( line );
  195.   cout << "\nLiczba cyfr          : " << dgt_str_cnt( line );
  196.   cout << "\nLiczba innych znakow : " << nalpha_str_cnt( line );
  197.  
  198.   cout << "\n\nPodaj pojedynczy znak: ";
  199.   cin.get( c );
  200.  
  201.   cout << "\nLiczba wystapien znaku  " << c << " : " << chr_str_cnt( c, line );
  202.  
  203.   if( ( pos = chr_str_pos( c, line ) ) != -1 )
  204.     cout << "\nPierwsze wystapienie znaku " << c << " od poczatku : " << pos + 1;
  205.   else
  206.     cout << "\nZnak " << c << " nie zostal znaleziony";
  207.  
  208.   if( ( pos = chr_str_rpos( c, line ) ) != -1 )
  209.     cout << "\nPierwsze wystapienie znaku " << c << " od konca : " << pos + 1;
  210.   else
  211.     cout << "\nZnak " << c << " nie zostal znaleziony";
  212.  
  213.   cout << "\n\nNapis oryginalny : " << line;
  214.   str_rev( line );
  215.   cout << "\nNapis odwrocony  : " << line;
  216.  
  217.   cin.ignore();
  218.   cin.get();
  219.   return EXIT_SUCCESS;
  220. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement