Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallöchen!!!

Ich hab mal wieder ein Problem und hoffe das ihr mir helfen könnt... Ich habe ein Programm das mir in einem satz wörter ersetzen soll. Ich hab das soweit auch geschrieben nur fehlt mir leider der Teil wo ich das ersetzende Wort an die stelle des alten wortes setzte. Hab nen absoluten Blackout. Komm einfach nciht drauf wie es gehen könnte... Leider hab ic morgen auch abgabe termin... Ich hoffe das ihr mir auf die Sprünge helfen könnt... Hier mal den Quellcode...

#include <stdio.h>

#include <string.h>


#define MAXLINE 40


void main ()

{

    // deklaration der Variablen

    int iEingabe;

    char sZeile [50];

    char sSuchWort[50];

    char sNeuesWort [50];

    char sNeueZeile [50];

    int iZaehler;

    int iSpalte;

    int iLeerPos;

    int iZurueck;

    int iSuchWortZaehler;

    int iAnzahlZeichenZeile;

    int iPosErstesZeichenSuchWort;

    int iAnzahlSuchWort;

    int iNeuesWortZaehler;

    int iAnzahlNeuesWort;

    int iNeueAnzahlZeichen;


    // Zuordnung der Werte

    iEingabe = 'w';

    iZaehler = 0;

    iSpalte = 0;

    iLeerPos = 0;

    iZurueck = 0;

    iSuchWortZaehler = 0;

    iAnzahlZeichenZeile = 0;

    iPosErstesZeichenSuchWort = -1;

    iAnzahlSuchWort = 0;

    iNeuesWortZaehler = 0;

    iAnzahlNeuesWort = 0;

    iNeueAnzahlZeichen = 0;



    /*

    Eingabe des ganzen Satzes

    */

    printf("\nBitte geben Sie einen Satz ein\n");

    scanf ("%d", iEingabe);


    /*

    Die Eingabe im Array speichern und Automatischer Zeilenumbruch 

    */

    while (iEingabe !='\n')  // Wird ausgeführt solange iEingabe nicht A ist

    {

        iEingabe = getchar();       // Übergabe der Werte an iEingabe

        sZeile [iZaehler] = iEingabe;   // Übergabe der Werte an sZeile 

        if (iEingabe == ' ')    

        {   

            iLeerPos = iZaehler;    // iLeerPos bekommt den Wert von iZaehler und behält ihn so lange bis iZaehler wieder ein Leerzeichen ist.

        }

        if (iSpalte >= MAXLINE)     

        {

            sZeile[iLeerPos] = '\n';    

            iSpalte = -1;       // iSpalte bekommt den wert -1 damit iSpalte nach dem Zeilentrenner wieder bei 0 beginnt. -1 Weil iSpalte gleich unten drunter wieder um 1 hochgezählt wird.

        }

        ++ iZaehler;    

        ++ iSpalte;     

    }

    sZeile[iZaehler] = '\0';  // ende der Zeichenkette


    iAnzahlZeichenZeile = iZaehler; // Übergabe der Anzahl der vorhanden Zeichen im Array



    /*

    Eingabe des zu ersetzendes Wortes entgegennehmen

    */ 

    iEingabe = 0;   //sichern ist sichern, auf jeden Fall kein vordefinierter Wert


    printf ("\nWelches Wort wollen Sie ersetzen?\n");

    scanf("%d", iEingabe);



    /*

    Abgreifen und Speichern des zu ersetzenden Wortes

    */

    while (iEingabe != '\n')

    {

        iEingabe = getchar();       // Übergabe der Werte an iEingabe

        sSuchWort [iSuchWortZaehler] = iEingabe;   // Übergabe der Werte an sSuchWort

        ++iSuchWortZaehler;

        sSuchWort[iSuchWortZaehler] = '\0';

    } 

    iAnzahlSuchWort = iSuchWortZaehler; // Wertübergabe von der länge des Suchworts

    --iAnzahlSuchWort;


    /*

    Suche nach dem ersetzenden Wort

    */

    iZaehler = 0;   //Sicher sein das wir am Anfang der Zeichenkette beginnen 

    iSuchWortZaehler = 0;   // Sichern das iSuchWortZaehler am Anfang der Zeichenkette beginnt 


    while ( iZaehler < iAnzahlZeichenZeile)

    {

        if (sZeile [iZaehler] == sSuchWort[iSuchWortZaehler])    

        {   

            /*

            Speicher die Position des ersten Buchstabens meines zu ersetzenden wortes

            wenn der erste Buchstabe meines zu suchenden Wortes in meinem satz gefunden wurde

            */

            if (iSuchWortZaehler == 0)

            {

                iPosErstesZeichenSuchWort = iZaehler;

            }



            /*

            Das zu ersetzende Wort wurde gefunden

            */

            ++iSuchWortZaehler;

            if (iSuchWortZaehler == iAnzahlSuchWort)    // trifft nur ein wenn das zu ersetzende Wort gefunden wurde

            {  

                printf ("\nIhr Wort wurde gefunden\n");

                break;

            }

        }

        else

        {

            // Es wurde nicht das ganze zu suchende Wort gefunden und wird darum auf die ausgangspositionen zurückgesetzt

            iSuchWortZaehler = 0;

            iPosErstesZeichenSuchWort = -1; 

        }

        ++iZaehler; 

    }



    /*

    Das ersetzende wort eingeben wenn das wort gefunden wurde

    */

    // iSuchWortZaehler kann nur dann mit iAnzahlSuchWort übereinstimmen wenn das zu ersetzende Wort gefunden wurde

    if (iSuchWortZaehler != iAnzahlSuchWort)    

    {

        printf ("\n Ihr Wort wurde nicht gefunden\n");

    }

    else 

    {   

        //sichern ist sichern, auf jeden Fall kein vordefinierter Wert

        iEingabe = 0;   


        // Entgegen nehmen der Eingabe

        printf ("\nDurch welches Wort wollen Sie ersetzen?\n");

        scanf("%d", iEingabe);



        // Abgreifen und Speichern der Eingabe

        while (iEingabe != '\n')

        {

            iEingabe = getchar();       // Übergabe der Werte an iEingabe

            sNeuesWort [iNeuesWortZaehler] = iEingabe;   // Übergabe der Werte an sNeuesWort

            ++iNeuesWortZaehler;

            sNeuesWort[iNeuesWortZaehler] = '\0';

        } 

        iAnzahlNeuesWort = iNeuesWortZaehler; // Wertübergabe von der länge des zu ersetzenden worts

        --iAnzahlNeuesWort;



        /*

        Berechnung der Längenunterschiede

        */

        if (iAnzahlSuchWort > iAnzahlNeuesWort )

        {

            iZurueck = iAnzahlNeuesWort - iAnzahlSuchWort;

        }


        if (iAnzahlSuchWort < iAnzahlNeuesWort)

        {

            iZurueck = iAnzahlNeuesWort - iAnzahlSuchWort;

        }




        /*

        Verschiebung der Letzen Positionen solange bis die Position des ersten Zeichens 

        vom SuchWort erreicht ist

        */

        iNeueAnzahlZeichen = iAnzahlZeichenZeile;


        while (iAnzahlZeichenZeile != iPosErstesZeichenSuchWort)   

        {

            // Übergabe des errechneten Wertes um die fehlenden Zeichen in meiner Kette zu überbrücken

            sZeile[iAnzahlZeichenZeile +iZurueck] = sZeile[iAnzahlZeichenZeile];   

            -- iAnzahlZeichenZeile; 

        } 


        iSuchWortZaehler = 0;

        iNeuesWortZaehler = 0;

        /*

        Ersetzung des Wortes

        */ 




        }

    }

    /*

    Ausgabe der Zeichenkette

    */

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

 }   

Danke schonmal im vorraus...

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.