I'm supposed to make a code that determines if entered string is a palindrome, the code is supposed to have 3 functions. The first is to determine if string is palindrome, the second is to use isalpha()
to remove all non letters and the third is to use tolower()
to remove the difference between upper and lower case letters. I made all 3 separate functions but now that I have to combine them. The code just gives exception thrown.
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int isPalindrome(char inputString[])
{
int middle = strlen(inputString) / 2;
int len = strlen(inputString);
for (int i = 0; i < middle; i++)
if (inputString[i] != inputString[len - i - 1])
{
return 0;
}
else
{
return 1;
}
}
void checker(char stringWithoutSpace[], char bigArray[])
{
int j = 0;
for (int i = 0; i < strlen(stringWithoutSpace); i++)
{
if (isalpha(stringWithoutSpace[i]) != 0)
{
bigArray[j++] = stringWithoutSpace[i];
}
}
}
void lowerCase(char* string)
{
int i;
for (i = 0; string[i]; i++)
{
string[i] = tolower(string[i]);
}
}
#define SIZE 1000
int main(void) {
int repeat = 1;
char arrayPalindrome[SIZE];
char bigArray[SIZE];
while (repeat == 1)
{
printf("Enter a sentence: ");
scanf_s("%s", &arrayPalindrome);
checker(arrayPalindrome, bigArray);
lowerCase(arrayPalindrome, bigArray);
if (isPalindrome(arrayPalindrome) == 1)
{
printf("This is a palindrome.");
}
else
{
printf("this in not a palindrome: ");
}
printf("Do you want to enter another sentence (0 for no, 1 for yes)?");
scanf_s("%d", &repeat);
}
return 0;
}