文字列が回文かどうかをチェックする基本的なプログラムをコーディングしています。
#include <stdio.h>
#include <string.h> //Has some very useful functions for strings.
#include <ctype.h> //Can sort between alphanumeric, punctuation, etc.
int main(void)
{
char a[100];
char b[100]; //Two strings, each with 100 characters.
int firstchar;
int midchar;
int lastchar;
int length = 0;
int counter = 0;
printf(" Enter a phrase or word for palindrome checking: \n \n ");
while ((a[length] == getchar()) !10 ) //Scanning for input ends if the user presses enter.
{
if ((a[length -1]), isalpha) // If a character isalpha, keep it.
{
b[counter] = a[length-1];
counter++;
}
length--; //Decrement.
}
makelower(b, counter); //Calls the function that changes uppercase to lowercase.
for( firstchar = 0; firstchar < midchar; firstchar++ ) //Compares the first and last characters.
{
if ( a[firstchar] != a[lastchar] )
{
printf(", is not a palindrome. \n \n");
break;
}
lastchar--;
}
if( firstchar == midchar )
{
printf(", is a palindrome. \n \n");
}
return 0;
}
//Declaring additional function "makelower" to change everything remaining to lowercase chars.
int makelower (char c[100], int minicount)
{
int count = 0;
while (count <= minicount)
{
c[count] = tolower(c[count]);
}
return 0;
}
そして、printf ステートメントの直後の最初の while ループのある行で、次のコンパイラ エラーが発生します。
p5.c: In function 'main':
p5.c:30: error: expected ')' before '!' token
上下を調べましたが、場違いな括弧や提携していない括弧は見つかりませんでした。私が考えることができる唯一のことは、コンマまたはある種の句読点が欠けているということですが、いくつかの場所にコンマを配置しようとしましたが、役に立ちませんでした.
これが具体的すぎる場合は申し訳ありません。前もって感謝します。