Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Sonderzeichen in einem Strin ignorieren !!!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
03.12.2003, 14:51 Uhr
~holdrio
Gast


Hallo,
ich bin ziemlich neu auf dem Gebiet C.
Ich suche eine Funktion, die mir aus einen angefordertem String die Sonderzeichen ignoriert, sowie Gross- und Kleinschreibung.
Es gibt doch sicher fertige Funktionen dafür oder ???

Danke schon mal...

MfG

holdrio
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
03.12.2003, 16:03 Uhr
geissbock



schau mal unter 'isalpha'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
03.12.2003, 16:13 Uhr
~holdrio
Gast


isalpha habe ich schon gefunden, weis nur nicht wie ich Fuktion richtig schreibe ...

Hier mal einiges an Code, ich weis aber nicht was ich falsch mache...

C++:
void compress (char s[])
{
  int laenge=strlen(s);
  for (int i=0; i<laenge; i++)
    {
       if(isalpha ((int)s[i])
       {
       (toupper(x[i])==toupper(x[k]))
       k++;
       }
       i++
       return;
    }
}




Bearbeitung von Pablo:

BITTE, CPP TAGS BENUTZEN


Dieser Post wurde am 03.12.2003 um 20:48 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
03.12.2003, 16:17 Uhr
~RedEagle
Gast


Habe glaube den fehler gefunden:

Du hast geschrieben:
if(isalpha ((int)s)

Es muss aber glaube so heißen:
if(isalpha ((int)s))

Du hast vergessen, die if-bedingung zu schließen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
03.12.2003, 16:18 Uhr
~RedEagle
Gast


Und der return-wert müsste doch einen Wert bekommen (return 0
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
03.12.2003, 16:23 Uhr
geissbock



void und return passen aber nicht zusammen. normalerweise nimmt man void wenn man keinen rückgabewert aben will.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
03.12.2003, 16:33 Uhr
~holdrio
Gast


Ich komm einfach nicht weiter, an den Fehler, die Ihr gefunden habt lag es leider auch nicht..

Hier mal das ganze Programm.... Das Problem ist, dass die SOnderzeichen nicht ignoriert werden...

C++:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <iostream>

int k;
void compress (char s[])

{
  int laenge=strlen(s);
  for (int i=0; i<laenge; i++)
    {
       if(isalpha ((int)s[i]))
       {
       (toupper(s[i])==toupper(s[k]))
       k++;
       }
       i++
       return;
    }
}
int main ()

{
   char x[81];
   printf("\n Bitte eine Zeichenkette (ohne Blanks)\n");
   scanf("%s",x);
   printf("\n Eingabe war : %s\n",x);

   int laenge=strlen(x);
   compress(x);
   laenge=strlen(x);
   int ispalindrom=1;
   int k;
   printf("\n Laenge des String: %i\n",laenge);

   for(int i=0; i<laenge/2; i++)
   {
     k=laenge-i-1;
     if (toupper(x[i])==toupper(x[k]))
     {
          //nix
     }
     else
     {
       ispalindrom=0;
       break;
     }
   }
   if (ispalindrom==1)
   {
      printf("\n %s ist ein Palindrom\n",x);
   }
   else
   {
      printf("\n %s ist kein Palindrom\n",x);
   }

      system("PAUSE");
}




Bearbeitung von Pablo:

CPP TAGS GESETZT


Dieser Post wurde am 03.12.2003 um 20:49 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
03.12.2003, 16:42 Uhr
geissbock




Zitat:
~holdrio postete
if(isalpha ((int)s[i]))



was denkst du dir bei der zeile?
und die fehlermeldungen würden weiterhelfen. mir jedenfalls. bin auch nicht so der hecht im proggen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
03.12.2003, 17:02 Uhr
virtual
Sexiest Bit alive
(Operator)



C++:
void compress(char* s)
{
    char *t = s;
    while(*s)
    {
         if (isalpha(*s))
         {
             *t++ = tolower(*s++); /* Oder einfach *s++, wenn keine Umwandlungen in kleinbuchstaben */
         }else
         {
             s++;
         }
    }
    *t = 0;
}


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: