Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

C Programm - Palindrom

<<< zurück   -1- -2- -3-  
spark82 - 43
Halbprofi (offline)

Dabei seit 11.2006
240 Beiträge

Geschrieben am: 26.04.2007 um 07:59 Uhr
Zuletzt editiert am: 26.04.2007 um 08:02 Uhr

man könnte das auch so lösen:

char pText[] = "hallo, ich bin vielleicht ein Palindrom";

int isPalinom(void)
{
int length = 0; /* Länge des potentiellen Palinoms */
int i; /* Schleifenvariable */

/* länge des palinoms berechnen */
while( '\0' != pText[position] )
position++;

/* vergleich durchführen*/
for( i = 0; i < position; i++ )
if(pText[i] != pText[position - i - 1] )
return 1;

/* Vergleich hat keine Unstimmigkeiten gefunden, es ist ein Palinom */
return 0;
}

Das wäre eine C-Lösung, ganz ohne Pointer, das geht auch.
Allerdings weiß ich nicht, wie ich der Funktion das Palinom übergeben kann, ohne Pointer zu verwenden :pfeiffer: Also hab ich die Variable global gemacht, ist ne Notlösung...

ich übernehm' keine Garantie, kompliert hab ich's nicht.

PS: Team-Ulm formatiert den Code ja schrecklich zusammen. Das ist so ja grauslig zu lesen! :-(

Das schlimmste an Zensur ist XXXXXXXX XXXXXX.

Caarcrinolas - 41
Profi (offline)

Dabei seit 02.2006
909 Beiträge

Geschrieben am: 26.04.2007 um 13:50 Uhr

Zitat von Polaris:

Nun, wir arbeiten hier unter C, und mit den Vorgaben hier wirst du schlecht um char-Arrays bzw. -Pointer herumkommen
std::string gibt's net in C :-P ;-) ... Jeder der C oder C++ programmiert sollte sich außerdem mit Pointern auseinandersetzen und damit arbeiten können, sonst wird er sehr schnell Schwierigkeiten haben auch nur andere Codes zu lesen.

im Grunde ist xyc[] bereits ein Pointer

Aristoteles: "Es gibt kein großes Genie ohne einen Schuß Verrücktheit."

Moritz - 39
Halbprofi (offline)

Dabei seit 10.2002
158 Beiträge
Geschrieben am: 26.04.2007 um 15:29 Uhr

danke habs dann irgendwie doch noch alleine hinbekommen
und sry, konnte gestern nich on kommen ^^
spark82 - 43
Halbprofi (offline)

Dabei seit 11.2006
240 Beiträge

Geschrieben am: 26.04.2007 um 15:44 Uhr
Zuletzt editiert am: 26.04.2007 um 15:46 Uhr

wie haste's gemacht? Poste doch mal deine Lösung, bin neugierig :-)

EDIT: Du sitzt ja in Weingarten! Das sind keine 3 km von 'hier'. Was studierst du?

Das schlimmste an Zensur ist XXXXXXXX XXXXXX.

Rifleman - 40
Experte (offline)

Dabei seit 09.2003
1540 Beiträge
Geschrieben am: 27.04.2007 um 16:00 Uhr
Zuletzt editiert am: 27.04.2007 um 16:13 Uhr

Nunja...zum Abschluss hätte ich noch eine kleine (diesmal auch halbwegs praktikable) Lösung in C99 (wer schreibt denn noch ansi-c? ;-) )

Zitat:

#include < string.h >
#include < stdio.h >

int is_palindrome(char *str) {
int str_length = strlen(str);
for(int i = str_length/2 - 1; i>=0; i--) {
if( str[i] != str[str_length-i-1] ) return 0;
}
return 1;
}

int main(int argc, char **argv)
{
if(argc != 2) {
printf("Usage: %s string\n", argv[0]);
return 1;
}
printf("Is Palindrome: %s\n", is_palindrome(argv[1]) ? \
"Yes" : "No");
return 0;
}

Zitat:

rifleman@rifleman ~ $ gcc -std=c99 -o ispalindrome ./ispalindrome.c
rifleman@rifleman ~ $ ./ispalindrome lagerregal
Is Palindrome: Yes


Es sind die kleinen Dinge, die einen zum Wahnsinn treiben.

<<< zurück
 
-1- -2- -3- [Antwort schreiben]

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -