Einlesen eines Strings und sortieren

ambulanceracer01

Grünschnabel
Also ich habe String den ich eingebe. Dann gebe ich eine Anfangsposition ein, die Länge und dann verschiebe wert.
Zeichenkette: Ich find das toll!!
Position: 4
Länge: 9
Verschieben: 4
Ergebnis: Ich das find toll!!

So soll das dann aussehen.
Also das einlesen ist ja kein Problem und das übergeben auch nicht.
Nur bei dem Berechnen habe ich Problem.
Hat jemand vllt ein Ansatz für die Lösung.
Danke im voraus
 
Code:
include <stdlib.h>
#include <string.h>
#define MAXIM 100


void rotate(char* feld, unsigned int laenge, int schiebung,int position) {
  int    i;
    char    *feld2;
   
    schiebung = schiebung%laenge;
    if(schiebung == 0){
        return;
    }
    feld2 = malloc(schiebung);
    memcpy(feld2, feld, laenge);
    for(i = position; i < laenge; i--)
    {
        //position = i + schiebung;
        if(i < 0)
        {
            feld[i] += feld2[laenge];
        }
        else if(i >= laenge)
        {
            feld[i] -= feld2[laenge];
        }
        
    }
    printf("%s",feld2);
    free(feld2);
}  


int main()
{
    char feld[MAXIM];
    int laenge;
    int schiebung;
    int position;

    printf("Zeichenkette: ");
  	fgets(feld, MAXIM, stdin);


    printf("Position: ");
    scanf("%d", &position);

    printf("Laenge: ");
    scanf("%d", &laenge);

    printf("Verschieben: ");
    scanf("%d", &schiebung);

    rotate(feld, laenge, schiebung, position);

    printf("Ergebnis: %s\n", feld);
    return 0;

}

Das ist mein Script was ich habe.
 
Zurück