tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
25
ZUGRIFFE
983
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Davicito Davicito ist offline Mitglied Gold
    Registriert seit
    Oct 2010
    Beiträge
    145
    Hallo,

    ich hab da mal wieder eine Frage an die Experten. in dem folgendem Beispiel möchte ich einzelne Charakter nacheinander zu einem String zusammenfügen. Leider klappt das bei mir nicht.

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    #include <stdlib.h>
     
    #include <stdio.h>
     
    #include <string.h>
     
    char buffer[SIZE];
     
    FILE *file1, *file2;    // Eingabe- und Ausgabe-File
     
    char* wort = "";
    ...
    while((c = fgetc(file1)) != EOF)
    {
            if((c >= 48 && c<= 57) || (c >= 65 && c <= 90) || (c >= 97 && c <= 122))
        {
                //wort = (char*) c;
                //strcpy(wort, (char*) c); 
        }
             printf("Wort: %s\n",wort);
    }

    mit strcpy komme ich nicht weiter. Die String.h Referenz gibt nicht mehr her. Habt ihr noch eine idee, wie sich das realisieren lässt?
     

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Hi

    wort hat keinen Speicher.
    Bzw. nur 2 Byte. Das reicht nicht lang.
    Leg also zuerst mal ein ordentlich großes wort an.

    Dann...mit der Schleife wirst du am Ende in dein "wort" die ganze Datei einlesen, jedoch nur die Ziffern und Buchstaben daraus. Trotzdem die ganze Datei, nicht nur ein Wort.
    Ist das beabsichtigt?

    Das letzte printf sollte durch puts ausgetauscht werden.
    Das printf gehört außerdem aus der Schleife raus.

    Und die Zwei (zurzeit auskommentierten) Zeilen in der Schleife sind Unsinn.

    Mach zuerst außerhalb der Schleife ein int, zB. zaehler.
    Setz ihn auf 0.
    Statt der zwei Kommentarzeilen machst du dann
    Code cpp:
    1
    
    wort[zaehler++] = c;
    Nach der Schleife, vor dem printf machst du dann noch ein
    Code cpp:
    1
    
    wort[zaehler] = '\0';
    zum Abschluss.

    Was noch fehlt: Überprüfen, ob wort eventuell zu klein wird.

    Gruß
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  3. #3
    Davicito Davicito ist offline Mitglied Gold
    Registriert seit
    Oct 2010
    Beiträge
    145
    Hi danke erstmal für die schnelle antwort.
    in "wort" wir tatsächlich eine komplette datei eingelesen - wobei die Datei nur sehr klein ist (4 Zeilen). Aber es sollen nachher noch mit zusatzfunktionen die wörter nach und nach in dem String "wort" erscheinen. ich wollte erstmal wisse, wie ich überhaupt gefilterte Zeichen in einem String bekomme.
     

  4. #4
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Gut.
    Zitat Zitat von Davicito Beitrag anzeigen
    ich wollte erstmal wisse, wie ich überhaupt gefilterte Zeichen in einem String bekomme.
    Weißt du es jetzt? Bzw. funktionierts?
    Wenn nicht: Neuer Code?

    Und bitte Netiquette 15 beachten.
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  5. #5
    Davicito Davicito ist offline Mitglied Gold
    Registriert seit
    Oct 2010
    Beiträge
    145
    Ja danke es funktioniert... hatte aber eher gehoft, dass es mit einer art buffer (string) auch funktionieren würde.

    Danke
     

  6. #6
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Das denk ich auch
    Ich denke, du hast mich oben gründlich missverstanden.
    Zeig den Code.
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  7. #7
    Davicito Davicito ist offline Mitglied Gold
    Registriert seit
    Oct 2010
    Beiträge
    145
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
     
    char wort[500] = "";
    int zeilen = 1;
     
    int spalten = 1;
    int i = 0;
     
    while((c = fgetc(file1)) != EOF)
     
    {
            if(c == '\n')
            {
                zeilen++;
                spalten = 1;
            }
            if((c >= 48 && c<= 57) || (c >= 65 && c <= 90) || (c >= 97 && c <= 122))
            {
                wort[i] = c;
                printf("%c",wort[i]); 
            }
            else
            { 
                for(int i=0;i <= 500; i++) wort[i] = " ";  //Feld löschen
                
     
            }
                                
            spalten++;
                
     
    }
     

  8. #8
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    So wirklich gelesen hast du meinen Anweisungsbeitrag aber nicht, oder?
    Außerdem darf das nicht mal kompilieren.
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  9. #9
    Davicito Davicito ist offline Mitglied Gold
    Registriert seit
    Oct 2010
    Beiträge
    145
    wieso? ich meine nur printf mit puts auszutauschen, macht mir jetzt kein so richtigen sinn.
    Oder ich habe puts nicht verstanden
     

  10. #10
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Mir gehts auch nicht um das puts.
    Das ist das Unwichtigste am Ganzen.
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  11. #11
    Davicito Davicito ist offline Mitglied Gold
    Registriert seit
    Oct 2010
    Beiträge
    145
    Kannst du mir noch sagen, wie ich jetzt das Feld in ein String bekomme?

    Danke Dir im Vorraus.
     

  12. #12
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Das Feld ist ein String.
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  13. #13
    Davicito Davicito ist offline Mitglied Gold
    Registriert seit
    Oct 2010
    Beiträge
    145
    ich meine als buffer -> char* wort
    nicht char wort[]
     

  14. #14
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Das ist das Selbe.

    Ich kann dir nur (wie so oft schon) den Hinweis geben,
    dich mit den grundlegensten Grundlagen zu beschäftigen.

    Das dir das fehlende Wissen immer wieder Probleme bereitet,
    merkst du ja selbst.
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  15. #15
    Davicito Davicito ist offline Mitglied Gold
    Registriert seit
    Oct 2010
    Beiträge
    145
    ja... danke dir.

    eigentlich ist ein feld immer ein Vektor und ein string eine Zeichenkette ohne vektor
    ich brauche aber ein nicht array sondern eine Zeichenkette (String) one vektor
    Geändert von sheel (25.11.11 um 00:27 Uhr) Grund: Doppel
     

Ähnliche Themen

  1. DB2: String und Zahl zusammenfügen
    Von CurlyConny im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 05.08.08, 10:04
  2. Antworten: 3
    Letzter Beitrag: 08.05.07, 09:36
  3. Syntax error converting datetime from character string
    Von daschii im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 13.02.06, 10:20
  4. Einzelne PDF Dateien zusammenfügen?
    Von bigfella im Forum Office-Anwendungen
    Antworten: 4
    Letzter Beitrag: 23.01.05, 17:49
  5. Einzelne zeilen auslesen und in einer zusammenfügen?
    Von thevibe im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 16.09.04, 15:33