Вручную считать символы для палиндрома

В настоящее время у меня есть программа, чтобы определить, является ли введенная строка палиндромом или нет. Я хочу избежать использования метода strlen.

    int main ()
{
char string[80];
bool Beginning;

Beginning = true;

while (Beginning)
{
cout << "\nEnter a string\n" << endl;
cin.getline(string, 80);
cout << "\nYou entered: ";
printf(string, 80);
cout << endl;
if('E' == string[0])
{
if('N' == string [1])
{
if('D' == string[2])
break;
}
}

int len=strlen(string);   //avoid this method

bool flag = true;

for (int c=0; string[c]; c++)
{
if (flag)
{
if(string[c] != string[len-c-1])
{
flag = false;
}
}
else
{
break;
}
}

if (flag)
{
printf ("\nThis is a Palindrome\n");
Beginning = true;
continue;
}
else
{
printf("\nThis is not a palindrome\n");
Beginning = true;
continue;
}
cin.get();

}
}

Я пробовал ручной подсчет со следующим:

while (string[c] < '\0') {
c++;
int len = string[c];
}

Вышеперечисленное испортит способность программ точно определять, является ли строка палиндромом или нет, это скажет, что оба они не являются или являются.

-3

Решение

Если я правильно понимаю, вам нужна правильная реализация для len

Это сделает работу:

len =0;
while (string[++len] );

Все, что вам нужно, это проверить нулевое завершение (так как вы используете C-строки)

Предложение: пожалуйста не смешивайте C & C ++!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]