10 svar
64 visningar
mattegeni2000 är nöjd med hjälpen
mattegeni2000 154
Postad: 27 sep 2022 10:29 Redigerad: 27 sep 2022 11:03

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;


}
Laguna Online 28597
Postad: 27 sep 2022 10:50

Du får bättre hjälp om du indenterar koden.

mattegeni2000 154
Postad: 27 sep 2022 11:00
Laguna skrev:

Du får bättre hjälp om du indenterar koden.

har gjort det nu

Laguna Online 28597
Postad: 27 sep 2022 11:15

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.

mattegeni2000 154
Postad: 27 sep 2022 11:26
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?

Laguna Online 28597
Postad: 27 sep 2022 12:45

Funktionen no_special_characters anropas inte. Skulle den det?

Gör programmet ingenting alls? Visa en körning.

mattegeni2000 154
Postad: 27 sep 2022 13:34 Redigerad: 27 sep 2022 13:39

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 

Yngve 37884 – Livehjälpare
Postad: 27 sep 2022 13:56

Du har väl redan en tråd om denna uppgift?

Laguna Online 28597
Postad: 27 sep 2022 15:00

Jag skriver inte ditt program åt dig. Om du skrev funktionen vet du väl hur du tänkte använda den?

mattegeni2000 154
Postad: 27 sep 2022 15:26 Redigerad: 27 sep 2022 15:26
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

 

Teraeagle 20231 – Moderator
Postad: 27 sep 2022 16:32

mattegeni2000, skapa inte flera trådar om samma uppgift. Enligt Pluggakutens regler ska vi hålla oss till en tråd per uppgift. /moderator

Svara Avbryt
Close