I can't use any string handling functions. I wrote my own version of strlen() which is working fine. My new code looks like this now, but it's printing out the error message even when a valid string is entered.
Code:
char userEntry(char s2[]){/*begin userEntry*/
char str2[21];
char ch, c, temp;
int error=0;
int i=0, j=0, length=0;
puts("Enter a string of characters of length 2 and 20:");
fgets(str2,21,stdin);
length=string_length(str2);
printf("%d\n",length);
if(length<2||length>20){
error=1;
}
else if(str2[1]=='\n'||str2[1]=='\0'){
error=1;
}
else if(length>2&&length<20){
for(i=0;i<length;i++){
temp=str2[i];
s2[i]=temp;
if(!isCapital(s2[i])){
error=1;
break;
}
s2[length]='\0';
}
}
if(error==1){
printf("Error in string.\n");
clearBuffer();
userEntry(s2);
}
puts("Enter a replacement char.");
ch=getchar();
return ch;
}/*end userEntry*/
Output:
s1=PHQGHUMEAYLNLFDXFIRCVSCXGGBWKFNQDUXWFNFO
Enter a string of characters of length 2 and 20:
JIO
4
Error in string.
Enter a string of characters of length 2 and 20:
JIOW
5
Error in string.