Strings in C

  • Hallo ich hab da ein Problem:


    Wenn ich in C ein Zeichenstring einlesen möchte benutze ich

    Code
    gets(beispieltext);


    So nun funktioniert diese Anweisung bei mir komischerweise nicht.
    Wenn ich das ganze mit

    Code
    scanf("%s",&beispieltext);

    mache funzt et zwar, aber wenn ich zwei Wörter eingeb ( die die Anzahl der reservierten Bits im Speicher nicht überschreiten) schreibt er mir eine binäre Null statt einem Leerzeichen.


    Bsp:
    Statt Ein Haus schreibt mein Programm Ein in die variable.


    Bin total verzweifelt!
    bitte helft mir


    Christian

  • #include <stdlib.h>
    #include <string.h>
    int main(int argc, char **argv) {
    char beispieltext[200];
    char beispieltext1[200];
    char beispieltext2[200];
    scanf("%s%s%s",&beispieltext,&beispieltext1,&beispieltext2);
    printf("%s\n",beispieltext);
    printf("%s\n",beispieltext1);
    printf("%s\n",beispieltext2);
    }




    ./bla
    1 2 3
    1
    2
    3

  • man scanf:

    Code
    %s     Matches  a  sequence  of non-white-space characters; the next
                  pointer must be a pointer to char,  and  the  array  must  be
                  large  enough  to accept all the sequence and the terminating
                  NUL character.  The input string stops at white space  or  at
                  the maximum field width, whichever occurs first.


    wenn du die ganze eingabe in einem character-array speichern willst, solltest du %c wiederholt nutzen.


  • yep. das ist wohl auch die kuerzeste Loesung.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!