Let's create a function that checks if a string is a palindrome by comparing characters from the beginning and end, moving towards the center.
#include <stdio.h>
#include <string.h>
int isPalindrome(char *str) {
    int start = 0;
    int end = strlen(str) - 1;
    while (start < end) {
        if (str[start] != str[end]) {
            return 0; // Not a palindrome
        }
        start++;
        end--;
    }
    return 1; // Is a palindrome
}
int main() {
    char str[100];
    printf("Enter a string: ");
    fgets(str, sizeof(str), stdin);
    str[strcspn(str, "\\n")] = 0; // Remove newline character if present
    if (isPalindrome(str))
        printf("\"%s\" is a palindrome.", str);
    else
        printf("\"%s\" is not a palindrome.", str);
    return 0;
}
            
            This function uses a while loop to check characters from both ends of the string, providing an efficient way to determine palindromicity.