fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <ctype.h>
  4.  
  5. typedef struct {
  6.  
  7. int stringLength;
  8. int numOfUpperCase;
  9. int numOfLowerCase;
  10. int numOfDigits;
  11. int numOfBlankSpaces;
  12. int numOfNonAlphaNumeric;
  13. int numOfVowels;
  14. int numOfNonVowels;
  15. int numOfSpecialChars;
  16. int numOfPrintableNonAlphaNumeric;
  17. int numOfHexadecimalDigits;
  18. int numOfBinaryDigits;
  19. int numOfOctetDigits;
  20. int numOfPunctuation;
  21. int numOfControlChars;
  22. int numOfPrintableChars;
  23.  
  24. }StringStats;
  25.  
  26. int main(void) {
  27. // your code goes here
  28. return 0;
  29. }
  30.  
  31. StringStats getStringStats (char theString[]){
  32.  
  33. StringStats stats = {0};
  34. int i = 0;
  35.  
  36. for (i; theString[i] != '\0'; i++){
  37.  
  38. unsigned char indivChar = theString[i];
  39. stats.stringLength++;
  40.  
  41. if (isupper(indivChar)) stats.numOfUpperCase++;
  42. if (islower(indivChar)) stats.numOfLowerCase++;
  43. if (isdigit(indivChar)) stats.numOfDigits++;
  44. if (isspace(indivChar)) stats.numOfBlankSpaces++;
  45. if (!isalnum(indivChar)) stats.numOfNonAlphaNumeric++;
  46. if (isxdigit(indivChar)) stats.numOfHexadecimalDigits++;
  47. if (iscntrl(indivChar)) stats.numOfControlChars++;
  48.  
  49. if (isalpha(indivChar)){
  50. char low = tolower(indivChar);
  51.  
  52. if (low=='a' || low=='e' || low=='i' || low=='o' || low=='u'){
  53.  
  54. stats.numOfVowels++;
  55. }
  56.  
  57. else{
  58. stats.numOfNonVowels++;
  59. }
  60.  
  61. }//if alpha
  62.  
  63. if (isprint(indivChar)) {
  64. stats.numOfPrintableChars++;
  65. if (!isalnum(indivChar) && indivChar != ' ') {
  66. stats.numOfPrintableNonAlphaNumeric++;
  67. stats.numOfPunctuation++;
  68. stats.numOfSpecialChars++;
  69. }//if is !alnum
  70.  
  71. }//if is print
  72.  
  73. if (indivChar >= '0' && indivChar <= '7') stats.numOfOctetDigits++;
  74. if (indivChar == '0' || indivChar == '1') stats.numOfBinaryDigits++;
  75.  
  76. }//for loop
  77.  
  78. return stats;
  79.  
  80. }//getStringStats
  81.  
  82.  
Success #stdin #stdout 0s 5312KB
stdin
Standard input is empty
stdout
Standard output is empty