fork download
  1. #include <iostream>
  2. #include <cctype>
  3.  
  4. struct StringStats {
  5. int length;
  6. int upperCaseCount;
  7. int lowerCaseCount;
  8. int digitCount;
  9. int spaceCount;
  10. int nonAlphaNumericCount;
  11. };
  12.  
  13. StringStats analyzeString(const std::string& str) {
  14. StringStats stats = {0, 0, 0, 0, 0, 0}; // Initialize with zeros
  15.  
  16. for (char ch : str) {
  17. stats.length++;
  18. if (isupper(ch)) {
  19. stats.upperCaseCount++;
  20. } else if (islower(ch)) {
  21. stats.lowerCaseCount++;
  22. } else if (isdigit(ch)) {
  23. stats.digitCount++;
  24. } else if (isspace(ch)) {
  25. stats.spaceCount++;
  26. } else if (!isalnum(ch)) {
  27. stats.nonAlphaNumericCount++;
  28. }
  29. }
  30.  
  31. return stats;
  32. }
  33.  
  34. int main() {
  35. std::string inputString;
  36. std::cout << "Enter a string: ";
  37. std::getline(std::cin, inputString); // Read an entire line
  38.  
  39. StringStats results = analyzeString(inputString);
  40.  
  41. std::cout << "String Characteristics:\n";
  42. std::cout << "Length: " << results.length << std::endl;
  43. std::cout << "Uppercase: " << results.upperCaseCount << std::endl;
  44. std::cout << "Lowercase: " << results.lowerCaseCount << std::endl;
  45. std::cout << "Digits: " << results.digitCount << std::endl;
  46. std::cout << "Spaces: " << results.spaceCount << std::endl;
  47. std::cout << "Non-alphanumeric: " << results.nonAlphaNumericCount << std::endl;
  48.  
  49. return 0;
  50. }
Success #stdin #stdout 0.01s 5280KB
stdin
hello my name is 
stdout
Enter a string: String Characteristics:
Length: 17
Uppercase: 0
Lowercase: 13
Digits: 0
Spaces: 4
Non-alphanumeric: 0