Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. char isUpper (char c) { return c >= 'A' && c <= 'Z'; } // check huruf besar atau bukan
  4. char isLower (char c) { return c >= 'a' && c <= 'z'; } // check huruf kecil atau bukan
  5. char isLetter (char c) { return isUpper(c) || isLower(c); } // check huruf atau bukan
  6.  
  7. char toLower (char c) { return isUpper(c) ? c - 32 : c; } // ubah huruf besar jadi lowercase
  8.  
  9. char isA (char c) { return toLower(c) == 'a'; } // check huruf a atau bukan
  10. char isI (char c) { return toLower(c) == 'i'; } // check huruf i atau bukan
  11. char isU (char c) { return toLower(c) == 'u'; } // check huruf u atau bukan
  12. char isE (char c) { return toLower(c) == 'e'; } // check huruf e atau bukan
  13. char isO (char c) { return toLower(c) == 'o'; } // check huruf o atau bukan
  14.  
  15. char isVowel(char c) { return isA(c) || isI(c) || isU(c) || isE(c) || isO(c); } // check vowel atau bukan
  16.  
  17. int len (char *w) { // check panjang sebuah kata
  18. int i = 0;
  19. while(w[i++]);
  20. return i;
  21. }
  22.  
  23. int main () {
  24. char text[100000] = "abcd e f g h ijklmno p q r s t uv w x y z qoibio fbaoid dkasdl nln qiwd daobd aklsd qlwe blq bpanpz;lcn z;c"; // hasilnya harusnya vowel 5 consonant 21
  25.  
  26. int isExist[26] = {0}; // buat ngecheck dia udah pernah ada atau belum
  27.  
  28. int totalVowel = 0; // buat totalin Vowel
  29. int totalConsonant = 0; // buat totalin Consonant
  30.  
  31. int length = len(text); // ambil panjang dari text
  32.  
  33. for (int i = 0 ; i < length ; ++i) { // looping dari awal character sampe akhir
  34. char currentCharacter = toLower(text[i]); // ambil character dari text ubah jadi huruf kecil
  35.  
  36. int currentCharacterIndex = currentCharacter - 97; // a jadi 0, b jadi 1, dst
  37.  
  38. if ( isLetter(currentCharacter) && isExist[currentCharacterIndex] == 0 ) { // jika dia huruf DAN dia sebelumnya belum pernah dihitung
  39. if (isVowel(currentCharacter)) ++totalVowel; // jika dia vowel, tambahin yg vowel
  40. else ++totalConsonant; // kalo engga, tambahin yang consonant
  41. }
  42.  
  43. isExist[currentCharacterIndex] = 1; // ubah jadi 1 biar pas ngecheck di LINE 38, ga ke duplicated, dianggap sudah pernah dihitung
  44. }
  45.  
  46. printf("word: %s | vowel: %d | consonant: %d\n", text, totalVowel, totalConsonant); // print
  47.  
  48. return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement