+ Antworten
Ergebnis 1 bis 4 von 4

Thema: PROG. C HILFE!!!!

  1. #1
    Ekstaza
    Gast Avatar von Ekstaza

    PROG. C HILFE!!!!

    Hallo,

    ich bräucht mal dringende hilfe und zwar hab ich hier ne aufgabe die ich nicht ganz lösen kann unter Linux.

    die Zeichenkette soll max 20 Zeichen einlesen
    wenn die zeichenkette zb. ein "au" "Au" "aU" oder "AU" enthält soll das umgewandelt werden durch "ei" "Ei" "eI" und "EI" .. der soll dann die änderung ausgeben.. + die anzahl der geänderten buchstaben!

    unter Dev-C++ funktionierts nur nicht unter Linux... kann mir jemand helfen?!

    #include <stdio.h>
    #include <stdlib.h>

    int main ()
    {
    int i=0;
    int j=0;
    char txt[20];

    printf("Gib ein txt\n");
    scanf("%s",txt);


    for (int i=0;i<20;i++)
    {
    if ((txt[i]=='a') && (txt[i+1]=='u'))
    {txt[i]='e';
    txt[i+1]='i';
    j++;
    }

    }

    printf("%s",txt[i]);
    printf("\n");
    printf("\nDie Gesammtzahl betraegt %i",(2*j));

    system ("PAUSE");
    }

  2. #2
    Aufsteiger/in Avatar von chris12

    Registriert seit
    30.10.07 - 22:40
    Beiträge
    279
    Thanks
    42
    Thanked 13 Times in 11 Posts

    AW: PROG. C HILFE!!!!

    ich denke ganz schlicht eimal, dass c/c++ oder was auch immer nicht auf linux funktionieren
    such doch mal nach nem linux c/c++ compeiler(ich weiss nicht ob es so einen gibt)

    korrigiert mich, wenn ich falsch liege



    mfg bb



    chris12

  3. #3
    Aufsteiger/in Avatar von terra-power

    Registriert seit
    14.4.04 - 15:44
    Beiträge
    435
    Thanks
    0
    Thanked 6 Times in 6 Posts

    AW: PROG. C HILFE!!!!

    Hm, hatte wegen Studium wenig zeit, deswegen melde ich mich erst jetzt. Dachte, vielleicht hätte jemand anderes des problems annehmen können :-)

    Ok, erste Frage ist "funktioniert nicht", was heißt denn das? Also habs in ne datei geschrieben, den letzten befehl jedoch weggelassen und es mit g++ compiliert. die kompilierung lief ohne probleme. beim ausführen gabs jedoch eine speicherverletzung was denke ich auf die schleife zurückzuführen ist. du legst oben 20 bytes an.. also ein feld von 0 bis 19, dann durchläufst du das feld von 0 bis 19, greifst aber an der einen stelle auf i+1 zu und somit betrittst du speicher, der dir nicht gehört.
    wenn du diesen fehler korrigierst, sollte das programm laufen.

    Zu Chris: "korrigiert mich, wenn ich falsch liege":

    http://de.wikipedia.org/wiki/C_%28Programmiersprache%29
    http://de.wikipedia.org/wiki/GNU_Compiler_Collection
    stop:

    NOP
    JMP stop

  4. #4
    Aufsteiger/in Avatar von terra-power

    Registriert seit
    14.4.04 - 15:44
    Beiträge
    435
    Thanks
    0
    Thanked 6 Times in 6 Posts

    AW: PROG. C HILFE!!!!

    So, habs mal schnell debuggt, hier das ergebnis:

    #include <stdio.h>
    #include <stdlib.h>

    int main ()
    {
    int i=0;
    int j=0;
    char txt[20];

    printf("Gib ein txt\n");
    scanf("%s",txt);


    for (int i=0;i<19;i++)
    {
    if ((txt[i]=='a') && (txt[i+1]=='u'))
    {txt[i]='e';
    txt[i+1]='i';
    j++;
    }

    }

    printf("%s",txt);
    printf("\n");
    printf("\nDie Gesammtzahl betraegt %i",(2*j));


    }
    stop:

    NOP
    JMP stop

+ Antworten

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Ja
  • Beiträge bearbeiten: Ja
  •