Я не вижу заданного вопроса, поэтому я также опубликую свою собственную реализацию, которая действительно работает, так как весь ваш код является беспорядком. Не стесняйтесь ничего спрашивать.
#include <stdio.h>
#include <string.h>
int isPalindrome(char*);
int main(int argc, char * argv[])
{
/* Skip filepath (argv[0]); end of command line is marked with NULL. */
for(int argIndex = 1; argv[argIndex] != NULL; ++argIndex)
{
isPalindrome(argv[argIndex])
? fprintf(stdout, "%s is a palindrome.\n", argv[argIndex])
: fprintf(stdout, "%s is NOT a palindrome.\n", argv[argIndex]);
}
return 0;
}
int isPalindrome(char* pString)
{
/* Ignore the terminator. */
size_t lastIndex = strlen(pString) - 1;
size_t middle = lastIndex / 2;
/* Include the middle index in case the string length is an odd number. */
for (size_t offset = 0; offset <= middle; ++offset)
{
/* No need for flags, stop as soon as you see different letters. */
if (pString[offset] != pString[lastIndex - offset])
{
return 0;
}
}
/* Line only reached if all symmetrical letters are not different. */
return 1;
}
Именован исполняемый файл myNewProgram. Это мой консольный ввод-вывод в Ubuntu. Естественно, кавычки должны явно выражать аргументы, чтобы они не были разделены пробелами.
/home/don/myNewProgram "TEST" "TET" "" "HUH" "OOMPA LOOMPA" "OOOOO"
TEST is NOT a palindrome.
TET is a palindrome.
is NOT a palindrome.
HUH is a palindrome.
OOMPA LOOMPA is NOT a palindrome.
OOOOO is a palindrome.
Если вы запускаете командную строку в Windows, попробуйте
<path to program>/<name of program>.exe "TEST" "TET" "" "HUH" "OOMPA LOOMPA" "OOOOO"
Добавьте вертикально центр и горизонтально центр ограничить для представления.