WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Frage C-Programm Char-Arrays (http://www.wcm.at/forum/showthread.php?t=179220)

coolbininet 26.11.2005 00:16

Frage C-Programm Char-Arrays
 
Hallo Leute!

Folgendes Problem: Möchte in dem ersten String alle Zeichen des zweiten Strings suchen und bei gefunden noch # mit der Anzahl ausgeben. Leider bin ich nicht so bewandt mit verschachtelten For-Schleifen, ich weiss aber dass mir da eine fehlt nur wo und wie?

Progi macht alles nur für ein Zeichen:

Code:

#include <stdio.h>
#include <string.h>
#define TABDIM 26

int main()
{
        char text[TABDIM]={"a\0"};
        char vorgabetext []= "joky oyz kot zkyz-yzxotm ckx jokykt yzxotm gry kxyzk vkxyut burryzgktjom gt sgt zrkx zkintoqas cokt gz yinoiqz hkqussz ot kotkx jkx tgkinyzkt akhatmkt kotk qrk otk akhkxxgyinatm bokr kxlurm\0";
        char d[]="abcdefghijklmnopqrstuvwxyz\0";
        char ausgabe[11550]="";
        int x, l,k, i, j, zaehler=0;

                printf ("Vorgegebener String:\n\njoky oyz kot zkyz-yzxotm ckx jokykt yzxotm gry kxyzk vkxyut burryzgktjom gt sgt\n");
                printf ("zrkx zkintoqas cokt gz yinoiqz hkqussz ot kotkx jkx tgkinyzkt akhatmkt kotk qrk\n");
                printf ("otk akhkxxgyinatm bokr kxlurm\nHistogramm:\n\n");
               
                l=strlen(vorgabetext);
                x=strlen(d);
                i = 0;
                k=0;

               
                        for (j=0; j<=l; j++)
                        {                       
                               
                                        if (d[i]==vorgabetext[j])
                                        {
                                                strcat (ausgabe,"#");
                                                zaehler++;
                                        }
                               
                        }
               
                        printf ("\n%c %d %s\n",d[0], zaehler, ausgabe);
               
                return 0;
}

Bitte um rasche Hilfe

Coolbininet

coolbininet 26.11.2005 16:50

Warum hilft mir keiner?

Grüsse Coolbininet

flinx 26.11.2005 17:40

So auf die Schnelle würd ich sagen, daß du um deine For-Schleife noch eine For-Schleife für einzelnen Buchstaben des zweiten Strings brauchst. :-)

coolbininet 26.11.2005 18:19

Das habe ich schon probiert, aber irgendwie funkt das nicht richtig!

Grüsse

pong 26.11.2005 18:23

Zitat:

Original geschrieben von coolbininet
Warum hilft mir keiner?

Grüsse Coolbininet

Nunja, bekommst du oder wir eine Note auf deine Hausübung?

pong

coolbininet 26.11.2005 19:31

Willst du mir helfen, oder nur Sternderl sammeln PC.net oder sollte ich Christian sagen?

mfg Bernhard Fronhofer

Biri 28.11.2005 20:29

Code:

int _tmain(int argc, _TCHAR* argv[])
{
    // Folgendes Problem: Möchte in dem ersten String alle Zeichen des zweiten Strings suchen
        // und bei gefunden noch # mit der Anzahl ausgeben. Leider bin ich nicht so bewandt mit verschachtelten
        // For-Schleifen, ich weiss aber dass mir da eine fehlt nur wo und wie?

        char vorgabetext []= "joky oyz kot zkyz-yzxotm ckx jokykt yzxotm gry kxyzk vkxyut burryzgktjom gt sgt zrkx zkintoqas cokt gz yinoiqz hkqussz ot kotkx jkx tgkinyzkt akhatmkt kotk qrk otk akhkxxgyinatm bokr kxlurm\0";
        char d[]="abcdefghijklmnopqrstuvwxyz\0";
        char ausgabe[1000]="";
        int zaehler=0;

        printf ("%s\n",vorgabetext);       

        for (int pos = 0; pos < strlen(d); pos ++)
        {
                char suchzeichen = d[pos];
               
                for (int t=0; t < strlen(vorgabetext); t++)
                {
                        if (vorgabetext[t] == suchzeichen)
                        {
                                strcat (ausgabe,"#");
                                zaehler++;
                        }
                }
                printf ("\n%c %d %s",suchzeichen, zaehler, ausgabe);
                memset(ausgabe,0,1000);
                zaehler = 0;
        }       
        getchar();
        return 0;
}

preiset hannes! :D


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag