Я должен сделать программу, которая сообщает мне, является ли строка палиндром или нет, используя библиотеку string.h. Я написал следующий код, но выход всегда «палиндром»Проверьте, является ли слово палиндром с string.h
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
char a[100],b[100];
int i,k;
printf("Type the string \n");
gets(a);
k=strlen(a);
for(i=0;i<strlen(a);i++)
{
a[i]=b[k];
k--;
} //at the end of this code the string "b" should be the reverse of "a"
k=strcmp(a,b);
if (k!=0) //here I check if a=b or not
{printf("palindrome");}
else
{printf("not palindrome");}
getch();
return 0;
}
Пример: Когда мой вход «не» выход должен быть «палиндром», если вход «корабль» на выходе должно быть «не палиндром". Может ли кто-нибудь помочь мне найти то, что не так?
Используйте к = StrLen (а) -1; вместо k = strlen (a); –
@ DanilAsotsky он не работает ни –
Это не связано с проблемами с алгоритмом, который вы внедрили, я просто чувствую, что должен комментировать что-то, что, по моему мнению, разработчикам следует начинать рано: A) Дайте значимые имена переменным, вы вам легче отлаживать свой собственный код, если вы это сделаете. B) Отформатируйте код последовательно, если у вас есть один оператор в предложении управления, либо пишите фигурные скобки, как и для нескольких операторов, либо отбрасывайте фигурные скобки. Выполнение того, что вы сделали, - это глазная болячка, которая препятствует пониманию кода. – StoryTeller