Pointer und Schleife

Diskutiere Pointer und Schleife im C/C++ Forum; Hallo, weitere folgende Aufgabe: "Vervollständigen Sie die folgende Funktion abc, die eine Zeichenkette übergeben bekommt und eine Zeichenkette...

  1. Java The Hutt
    Java The Hutt Neues Mitglied
    Hallo,

    weitere folgende Aufgabe:

    "Vervollständigen Sie die folgende Funktion abc, die eine Zeichenkette übergeben bekommt und eine Zeichenkette bereitstellt, in der Jedes "A" und "a" durch einen Bindestrich (-) ersetzt wird. Verwenden Sie dazu außschließlich den Zeiger pt (keine anderen Variablen)! Formulieren Sie eine Anweisung im Hauptprogramm, die die Funktion abc(char *txt*) aufuft.

    Code (C):
    abc(char *txt){
    char *pt;
    for ( ptr = .....; .......; pt++)
    ....
    Mein Lösungsansatz:
    (Ist die Aufgabe damit vollständig abgeschlossen oder gibt es einen einfachere, schnellere Möglichkeit? :)
    Code (C):


    #include <stdio.h>
    #include <conio.h>

    char abc(char txt [50])

    {

        int i;
        int *ptr;
        ptr = &i;
        for (*ptr = 0; *ptr < 50; (*ptr)++){
                if (txt [*ptr] == 'A'){
            printf("-");
                }else if (txt [*ptr] == 'a'){
                   printf("-");
                }else{
            printf("%c", txt[*ptr]);
                }
        }
        return *txt;
    }

    int main(void)
    {


        char txt [50] = {'A','B','a','b','A', 'c' ,'\0'};

        printf("Die Originale Zeichenkette lautet: \t%s\n", txt);
        printf("Nach Umwandlung erhält man:\t\t");
        abc(txt);




        return 0;
    }


     
     
    Zuletzt bearbeitet: 14. Feb. 2019
  2. Vielleicht hilft dir dieser Kurs hier weiter.
  3. mihe7
    mihe7 Bekanntes Mitglied
    Die Aufgabe ist noch nicht einmal gelöst: "Verwenden Sie dazu außschließlich den Zeiger pt (keine anderen Variablen)!" Der Anfang Deiner Funktion kann exakt so aussehen, wie in dem angegebenen Beispiel. Zum zweiten Teil Deiner Frage: ja, gibt es.
     
  4. Java The Hutt
    Java The Hutt Neues Mitglied
    Ich habe das ganze mit jetztigem Wissen von der vorherigen Aufgabe überarbeitet.

    Dabei 2 Fragen, ich weiß, dass es geht, dass man
    Code (C):
    if (*pt == 'A')
    hier noch eine weitere Bedingung hinzufügt, mit && nimmt er diese leider nicht an.
    Wie kann das Problem beheben und den Code verbessern?

    Code (open)
    Code (C):

    #include <stdio.h>
    #include <conio.h>

    char abc(char *txt)
    {
        char *pt;
        for ( pt = txt; *pt != 0; pt++)
        {
            if (*pt == 'A')
            {
                printf("-");
            }
            else if (*pt == 'a'){
                printf("-");
            }
            else
            {
                printf("%c", *pt);
            }

        };printf("\n");
    }

    int main()
    {
        char zeichenkette [] = "HAlla\0";

        abc(zeichenkette);


        char eingabe [25];
        printf("Bitte Text eingeben: \t");
        gets(eingabe);
        abc(eingabe);
    }


     
     
  5. mihe7
    mihe7 Bekanntes Mitglied
    Du suchst:
    Code (C):

    if (*pt == 'A' || *pt == 'a')
     
    Nun noch ein wenig Verwirrung stiften :p:
    Code (C):

    char *abc(char *txt)
    {
        char *pt;
        for ( pt = txt; *pt != 0; pt++) {
            if ((*pt & 0xDF) == 0x41)
                *pt = '-';
        }
        return txt;
    }
     
     
  6. Java The Hutt
    Java The Hutt Neues Mitglied

    Genau das suchte ich! Danke dir!
    Ich habe noch 2 weitere Aufgaben, jedoch schon Lösungsansätze, wobei ich aber noch 2 Fragen habe.
    Die eine zuerst:
    Ein Programm enthält folgende Struktur:
    (Man soll der Breite den Wert 100 zuweisen, über die Variable fernseher als auch über pt.
    Sruktur (open)
    Code (Text):
    struct fern
    {
        char firma[20];
        char modell[25];
        int preis;
        struct gr
        {
            short breite;
            short hoehe;
            short tiefe;
        } groesse;
    };


    Des weiteren sind folgende Variablen definiert:
    Code (C):
    struct fern fernseher, *pt=&fernseher;
    Ich habe eine Frage bezüglich *pt=&fernseher.
    *pt dereferenziert ja die Speicheradresse zu einem Wert.
    Also fügt man doch an der Stelle, einen Wert = der Speicheradresse des Fernsehers.?
    Ich habe es in meiner Lösung auch mal durchgetestet, da gibts natürlich Probleme, aber woran liegt das, dass es genau so gemacht wird?


    Lösung: (open)

    Code (C):
        fernseher.groesse.breite = 120;
        printf("Der Fernseher hat die Breite %d cm\n", fernseher.groesse.breite);
        pt->groesse.breite = 100;
        printf("Der Fernseher hat die Breite %d cm", fernseher.groesse.breite);
     
  7. mihe7
    mihe7 Bekanntes Mitglied
    Hier geht es um eine Deklaration. pt wird als Zeiger auf eine Struktur fern deklariert, dieser wird mit der Adresse von fernseher initialisiert. Ausgeschrieben:
    Code (C):

    struct fern fernseher;
    struct fern *pt;
    pt=&fernseher;
     
    Warum man noch einen Zeiger deklariert, oder was meinst Du?
     
  8. Java The Hutt
    Java The Hutt Neues Mitglied
    Eine Frage noch bezüglich Endkennung. Ist es besser *ptr != ´Backslash 0´zu schreiben oder *ptr != 0
     
  9. mihe7
    mihe7 Bekanntes Mitglied
    Richtiger wäre mMn tatsächlich '\0', da das ein char-Literal ist und somit char mit char verglichen wird.
     
  10. Wenn du Java lernen möchtest, empfehlen wir dir diesen Kurs hier
Passende Stellenanzeigen aus deiner Region:





Die Seite wird geladen...

Pointer und Schleife - Ähnliche Themen

NullPointerExeption in for-Schleife - Warum?
NullPointerExeption in for-Schleife - Warum? im Forum Java Basics - Anfänger-Themen
java.lang.NullPointerException bei Schleife
java.lang.NullPointerException bei Schleife im Forum Allgemeine Java-Themen
zweidim. JButton-Array in Schleife -> NullPointerExceptio
zweidim. JButton-Array in Schleife -> NullPointerExceptio im Forum AWT, Swing, JavaFX & SWT
AWT-EventQueue-0 NullPointerExeption bei drawLine
AWT-EventQueue-0 NullPointerExeption bei drawLine im Forum AWT, Swing, JavaFX & SWT
Finde Grund für NullPointerExeption nicht.
Finde Grund für NullPointerExeption nicht. im Forum AWT, Swing, JavaFX & SWT
Thema: Pointer und Schleife