All pastes #2067131 Raw Edit

Something

public text v1 · immutable
#2067131 ·published 2011-05-22 20:35 UTC
rendered paste body

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

char *mergeStr( char *string1, char *string2, int strlaenge1, int strlaenge2);
char *inverseStr(char *string1, int strlaenge1);
char *Teilstr(char *string1, int strlaenge1);

int main()
{
    int aufgabe, string1laenge, string2laenge;
    aufgabe = string1laenge = string2laenge = 0;
    printf("\nWas möchten sie machen?\n");
    printf("1 - 2 Zeichenketten aneinanderhaengen.\n");
    printf("2 - Eine Zeichenkette umkehren.\n");
    printf("3 - Eine Teilzeichenkette erstellen.\n");


    char *string1 = "Ab mit dem Kopf";
    char *string2 = "folge dem weissen Kaninchen";

    while (*string1++ != '\0') string1laenge++;
    string1 -= (string1laenge+1);
    while (*string2++ != '\0') string2laenge++;
    string2 -= (string2laenge+1);

    printf("%s , %s, %d, %d\n", string1, string2, string1laenge, string2laenge);
    scanf("%d", &aufgabe);
    switch (aufgabe)
    {
        case 1:
        {
            mergeStr(string1, string2, string1laenge, string2laenge);
            break;
        }
        case 2:
        {
            inverseStr(string1, string1laenge);
            break;
        }
        case 3:
        {
            Teilstr(string1, string1laenge);
            break;
        }
        default:
        {
            printf("Diese Aufgabe gibt es nicht!\n");
            break;
        }

    }
    return 0;

}

char *mergeStr( char *string1, char *string2, int strlaenge1, int strlaenge2)
{
    char *mergey;
    mergey = (char*) malloc(strlaenge1+strlaenge2+1);

    while (*string1 != '\0') *mergey++ = *string1++;
    while (*string2 != '\0') *mergey++ = *string2++;

    *mergey = '\0';

    mergey -= (strlaenge1 + strlaenge2);

    printf("%s", mergey);

    return mergey;
}

char *inverseStr(char *string1, int strlaenge1)
{
    int j;
    j=0;

    char *inverse;
    inverse=(char*) malloc (strlaenge1+1);

    while (*string1++ != '\0');
    string1-=2;
    while (j < strlaenge1)
    {
        *inverse++ = *string1--;
        j++;
    }
    *inverse = '\0';
    inverse -= (strlaenge1 + 1);
    printf("\n\n\n%s", inverse);
    return inverse;
}

char *Teilstr(char *string1, int strlaenge1)
{
    char *teil;
    int a, b, i;
    a=b=i=0;
    printf("Wo soll gestartet werden?");
    scanf("%d", &a);
    printf("Bis wohin?");
    scanf("%d", &b);
    teil=(char*) malloc (b-a+1);

    while(i<a)
    {
        i++;
        *string1++;
    }

    i=0;
    while (i<(b - a))
    {
        i++;
        *teil++=*string1++;
    }

    *teil = '\0';
    teil -= (b-a);

    printf("%s", teil);

    return teil;
}