Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

This program is in C. I have most of the problem done however cannot figure out

ID: 3804984 • Letter: T

Question

This program is in C. I have most of the problem done however cannot figure out the last two errors that i am getting.

Any help is appericated. My code and errors are below.

Errors

My code

#include<stdio.h>
#include <string.h>
#include <ctype.h>

int GetNumOfNonWSCharacters(const char usrStr[]) {
int num = 0,i;
for (i = 0; i < strlen(usrStr); ++i) {
if ((usrStr[i] == ' ') || (usrStr[i] == ' ') || (usrStr[i] == ' ') || (usrStr[i] == '')) {
} else {
++num;
}
}
return num;
}

int GetNumOfWords(const char usrStr[]) {
int num = 1, i;
for ( i = 0; i < strlen(usrStr); ++i) {
if ((usrStr[i] == ' ') && (usrStr[i + 1] != ' ')) {
++num;
}

}
return num;

}

void FixCapitalization(char usrStr[]) {
usrStr[0] = toupper(usrStr[0]);
  
int i;

for (i = 0; i < strlen(usrStr); ++i) {
if ((usrStr[i] == '.') && (isalpha(usrStr[i + 3]) != 0)) {
usrStr[i + 3] = toupper(usrStr[i + 3]);
}

}

}

void ReplaceExclamation(char usrStr[]) {
int i = 0;
for (i = 0; i < strlen(usrStr); ++i) {
if ((usrStr[i] == '!')) {
usrStr[i] = '.';
}

}

}

void ShortenSpace(char usrStr[]) {
  
int i,j;

for (i = 0; i < strlen(usrStr); ++i) {
if ((usrStr[i] == ' ') && (usrStr[i + 1] == ' ')) {
for (j = i; j < strlen(usrStr); ++j) {
usrStr[j+1] = usrStr[j+2];
}
}
}

}


char PrintMenu(char usrStr[]) {
char menuOp = ' ';

printf("MENU ");
printf("c - Number of non-whitespace characters ");
printf("w - Number of words ");
printf("f - Fix capitalization ");
printf("r - Replace all !'s ");
printf("s - Shorten spaces ");
printf("q - Quit ");

while (menuOp != 'c' && menuOp != 'w' && menuOp != 'f' &&
menuOp != 'r' && menuOp != 's' && menuOp != 'o' &&
menuOp != 'q') {
printf("Choose an option: ");
scanf(" %c", &menuOp);
}

if (menuOp == 'c') {
printf("Number of non-whitespace characters: %d ", GetNumOfNonWSCharacters(usrStr));
menuOp = ' ';
} else if (menuOp == 'w') {
printf("Number of words: %d ", GetNumOfWords(usrStr));
menuOp = ' ';
} else if (menuOp == 'f') {
FixCapitalization(usrStr);
printf("Edited text: %s ", usrStr);
menuOp = ' ';
} else if (menuOp == 'r') {
ReplaceExclamation(usrStr);
printf("Edited text: %s ", usrStr);
menuOp = ' ';
} else if (menuOp == 's') {
ShortenSpace(usrStr);
printf("Edited text: %s ", usrStr);
menuOp = ' ';
}

return menuOp;
}

int main() {
char userString[256];
char menuChoice = ' ';

printf("Enter a sample text: ");
fgets(userString, 256, stdin);
printf(" ");

printf("You entered: %s ", userString);

while (menuChoice != 'q') {
menuChoice = PrintMenu(userString);
}

return 0;
}

Tests that FixCapitalization works correctly with "we'll continue our quest in space. there will be more shuttle flights and more shuttle crews and, yes, more volunteers, more civilians, more teachers in space. nothing ends here; our hopes and our journeys continue!" Test feedback Fix Capitalization correctly edits the string 10. Compare output i want some water. he has some maybe he can give me some. nput f On Edited text: I want some water. h E has some maybe he can give me some. MENU c Number of non-whitespace characters Number of words Your output ends with f Fix capitalization r Replace a ll 's s Shorten spaces g Quit Choose an option: Maybe he can give me some Edited text: I want some water. He has some MENU c Number of non-whitespace characters Number of words Expected output ends f Fix capitalization r Replace a ll 's s Shorten spaces g Quit Choose an option:

Explanation / Answer

usrStr[0] = toupper(usrStr[0]);
int i;
for (i = 0; i < strlen(usrStr); ++i) {
if ((usrStr[i] == '.')) {
usrStr[i + 1] = toupper(usrStr[i + 1]);
}
}
}

/*********space*****************/

void ShortenSpace(char usrStr[]) {
int c=0,d=0,newstr[256];
while (usrStr[c] != '') {
if (usrStr[c] == ' ') {
int temp = c + 1;
if (usrStr[temp] != '') {
while (usrStr[temp] == ' ' && usrStr[temp] != '') {
if (usrStr[temp] == ' ') {
c++;
}
temp++;
}
}
}
newstr[d] = usrStr[c];
c++;
d++;
}

newstr[d] = '';
for (int q = 0; q < strlen(usrStr); ++q) {
usrStr[q]=newstr[q];
}
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote