Fel meddelande i skapande hos Palindrome
Hej! Jag har fått följande felmeddelande och vet inte hur jag ska lösa det. "implicit declaration of function 'isPalindrome' is invalid in C99" Är det för att jag inte har deklarerat isPalindrome innan main?
Du måste deklarera din funktion isPalindrome innan main. Antingen kan du flytta koden för hela funktionen till innan main, eller så deklarerar du den bara som int isPalindrome(char inputString[]); och sedan har koden för hela funktionen under main. Tror det senare alternativet är att föredra
Hör kan du läsa en relaterad fråga: https://www.pluggakuten.se/trad/inlamningsuppgift-programmering-1
Hondel skrev:Du måste deklarera din funktion isPalindrome innan main. Antingen kan du flytta koden för hela funktionen till innan main, eller så deklarerar du den bara som int isPalindrome(char inputString[]); och sedan har koden för hela funktionen under main. Tror det senare alternativet är att föredra
Tack!
Ett par saker:
När du ropar funktioner från main som är definierade efter main måste du
deklarera en prototyp ovanför main()
int minfunction();
int main() {... minFunction(); ...}
int minFunction() {...}
Använd inte gets, istället använd gets_s som tar max storleken på strängen eller fgets och ta bort \n
gets har ingen kontroll på hur stor strängen är som skickas in och kan därför användas för att göra
en hack attack på ditt program och/eller få det att krasha.
gets_s(inputString,SIZE);
Din funktion isPalindrom är inte rätt, den kollar bara mot sista bokstaven hela tiden, den skall
kolla första mot sista, andra mot nästsista osv.
if (inputString[i] == inputString[storlek-1]) // storlek - 1 är konstant
stoppa istället in i också på andra sidan
if (inputString[i] == inputString[storlek - i - 1])
du kan sluta att jämföra när du hittat mitten på strängen