#include <stdio.h>
#include <string.h>
struct stringStats
{
int stringLength; //number of total characters in the string
int upperCaseCount; //number of upper case characters
int lowerCaseCount; //number of lower case characters
int numDigits; //number of digits
int numBlankSpaces; //number of blank spaces
int nonAlphaChars; //number of non-alphanumeric characters
int numVowels; //number of vowels (the letters a, e, i, o, u) ... accept upper and lower case
int numNonVowels; //number of non-vowels ... accept upper and lower case
int numSpecChars; //number of special characters
int numPrintableChars; //all printable characters that are neither alphanumeric nor a space. For example ‘@’, ‘$’, etc.
int numHexaDecDigits; //number of hexadecimal "digits" - 0 through 9 ... and the letters A - F ... accept upper and lower case
int numOctalDigits; //number of octal "digits" - 0 to 7
int numBinaryDigits; //number of binary "digits" - 0 or 1
int numPunctChars; //number of punctuator characters
int numControlChars; //number of control characters
};
//**************************************************************
// Function: stringStats
//
// Purpose: Determine string stats
//
// Parameters:
//
// theString - string/word that getting stats on
//
// Returns: structure wth string stats
//
//**************************************************************
// function prototype to get started, or better, use pointers */
struct stringStats getStringStats (char theString[]){
//Declare a variable of type stringStats
struct stringStats stringStats1;
int numChars = strlen(theString); //calculate the number of characters
stringStats1.stringLength=numChars;
int numUpperCase=0; //initialize to 0 the number of upper case characters
int numLowerCase=0; //initialize to 0 the number of lower case characters
for (int i = 0; i < numChars; i++){ //looping through the number of characters in the string
if (theString[i] >= 'A' && theString[i] <= 'Z'){
numUpperCase++; //looking for upper case characters and if found, increment the variable that stored the number of uppercase characters by 1
}
if (theString[i] >= 'a' && theString[i] <= 'z'){
numLowerCase++; //looking for lower case characters and if found, increment the variable that stored the number of uppercase characters by 1
}
};
stringStats1.upperCaseCount=numUpperCase;
stringStats1.upperCaseCount=numLowerCase;
return stringStats1;
};
int main() {
// set up structure to store totals and initialize all to zero
struct stringStats retStringStats = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
retStringStats = getStringStats("bye");
printf("Number of characters: %i\n", retStringStats.stringLength);
return 0;
};