palindrom ska omvandla storabokstäver till små och bortse allt som inte är boskstäver
Hej, först vill jag att ni titta på mitt program och titta dom tre funktioner jag har gjort är korrekt gjord.
jag ska göra ett palindrom som ska omvandla stora bokstäver till små och bortse allt som inte är boskstäver.
Det problemet jag har är att den inte gör någon av dessa två asså omvandla storabokstäver till små och bortse allt som inte är boskstäver:
#include<stdio.h>
#define SIZE 1000
#include <ctype.h>
#include<string.h>
// funktion som kollar om det är en palindrom
int isPalindrome(char inputString[]) {
int l = 0;
int r = strlen(inputString) - 1;
while (r > l)
{
// kommer kolla alla bokstväver är lika med varandra
if (inputString[l++] != inputString[r--]) {
return 0; // return 0 om den är inte palindrom
}
}
// palindrome
return 1;
}
// funktion som bortse allt som inte är bokstäver
int no_special_characters(char inputString[])
{
char temp[SIZE];
int temp_index = 0;
int abc = 0;
int r = strlen(inputString);
for (int i = 0; i < r; i++)
{
char abc = isalpha(inputString[i]);
if (isalpha(abc) != 0)
{
temp[temp_index++] = abc;
}
}
temp[temp_index] = '\0';
return isPalindrome(temp);
}
// funktion som omvandla stora bokstäver till små
void to_lower(char inputstring[]) {
int length = strlen(inputstring);
// kollar om det är storbokstväver
for (int i = 0; i < length; i++)
{
if (isupper(inputstring[i]))
inputstring[i] = tolower(inputstring[i]);
else if (islower(inputstring[i]))
inputstring[i] = toupper(inputstring[i]);
}
}
int main() {
char inputstring[] = "abc_ABC";
to_lower(inputstring);
printf("inputstring after; %s", inputstring);
printf("\n %d", isPalindrome("nolemonnomelon"));
printf("\n %d", isPalindrome("NolemonnoMelon"));
printf("\n %d", isPalindrome("kaj1ak"));
printf("\n %d", isPalindrome("KajaK"));
printf("\n %d", isPalindrome("simmma"));
return 0;
}
Du får bättre hjälp om du indenterar koden.
Laguna skrev:Du får bättre hjälp om du indenterar koden.
har gjort det nu
Det här är konstigt:
char abc = isalpha(inputString[i]);
if (isalpha(abc) != 0)
Du gör i praktiken isalpha(isalpha(...)). Det kan inte bli rätt. Du menar nog
char abc = inputString[i];
på den första av de raderna.
Laguna skrev:Det här är konstigt:
char abc = isalpha(inputString[i]);
if (isalpha(abc) != 0)
Du gör i praktiken isalpha(isalpha(...)). Det kan inte bli rätt. Du menar nog
char abc = inputString[i];
på den första av de raderna.
oj trodde att jag ändrade den,det var det jag menar. Men programmet gör endå inget även om jag ändrar det?
Funktionen no_special_characters anropas inte. Skulle den det?
Gör programmet ingenting alls? Visa en körning.
Jo programmet körs,men den hoppar av no_special_characters och to_lower funktioner.
Men kan du visa hur man anropa till exempel no_special_characters. Jag har försökt men har misslyckats
Du har väl redan en tråd om denna uppgift?
Jag skriver inte ditt program åt dig. Om du skrev funktionen vet du väl hur du tänkte använda den?
Laguna skrev:Jag skriver inte ditt program åt dig. Om du skrev funktionen vet du väl hur du tänkte använda den?
Behövs inte, den är löst
mattegeni2000, skapa inte flera trådar om samma uppgift. Enligt Pluggakutens regler ska vi hålla oss till en tråd per uppgift. /moderator