login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > Overige > C en C++ > C++ - Tel het aantal letters en woorden

C++ - Tel het aantal letters en woorden

Auteur: Joel - 08 november 2006 - 19:58 - Gekeurd door: Joel - Hits: 3457 - Aantal punten: 3.50 (1 stem)



Dit program telt het aantal woorden en het aantal keer dat een letter voorkomt in een regel.

Code:
  1. <?/*
  2. ###############################################
  3. Auteur : Joël Verheyen
  4. Laatste wijziging : 8 November 2006 - 19:55
  5. ###############################################
  6.  
  7. Dit program telt het aantal woorden en het aantal keer dat een letter voorkomt.
  8. */
  9.  
  10. #include <iostream>
  11. #include <cctype>
  12. #include <string>
  13.  
  14. using namespace std;
  15.  
  16. void leesEnTel (int &aantalWoorden, int letterCount[]);
  17. //leest de regel, en telt aantal letters en woorden
  18.  
  19. void Resultaat (int letterCount[]);
  20. //print aantal woorden, en hoeveel keer de letter voorkomt
  21.  
  22.  
  23. int main()
  24. {
  25. int aantalWoorden = 1;
  26. int letterCount[26];
  27.  
  28. cout << endl;
  29. cout << "Enter een lijn tekst in:" << endl << endl;
  30.  
  31. leesEnTel (aantalWoorden, letterCount);
  32.  
  33. cout << endl;
  34. cout << aantalWoorden << " woord(en)" << endl;
  35. Resultaat(letterCount);
  36.  
  37. return 0;
  38. }
  39.  
  40. void leesEnTel (int &aantalWoorden, int letterCount[])
  41. {
  42. string lijn;
  43. int index;
  44.  
  45. //tekst lijn intypen
  46. getline(cin, lijn);
  47.  
  48. //beginwaarde 0 voor alle letters
  49. for (int i = 0; i < 26; i++)
  50. {
  51. letterCount[i] = 0;
  52. }
  53.  
  54. //alle karakters overlopen
  55. for (int i=0; i<lijn.length(); i++)
  56. {
  57. //als het karakter een alfabetische letter is...
  58. if (isalpha(lijn[i]))
  59. {
  60. //a krijgt index: 0, b krijgt index: 1, etc. int(a) is 97, dus daarom die -97.
  61. index = int(tolower(lijn[i]))-97;
  62.  
  63. //index vermeerderen met 1
  64. letterCount[index]++;
  65. }
  66.  
  67. //als er een spatie voorkomt, aantalWoorden vermeerderen met 1
  68. if (isspace(lijn[i]) && !isspace(lijn[i-1]))
  69. {
  70. aantalWoorden++;
  71. }
  72. }
  73. }
  74.  
  75. void Resultaat(int letterCount[])
  76. {
  77. for (int i = 0; i < 26; i++)
  78. {
  79. if (letterCount[i] > 0)
  80. {
  81. cout << letterCount[i] << " " << char('a' + i) << endl;
  82. }
  83. }
  84. }
Download code! Download code (.txt)

 Bekijk een voorbeeld van dit script!
 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (2)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.022s