Teilstring von Position x bis Position y kopieren



  • Hallo Leute,
    ich hab folgendes Problem. Ich lese eine Textdatei Zeile für Zeile ein. Ich möchte nun jde Zeile von der x-ten bis y-ten Stelle in einen neuen string schreiben. Hab aber leider keine Ahung wie ich das anstellen soll...
    Hier ist mein bisheriger Code:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define ZEILENLAENGE 200

    int main()
    {
    FILE *quelle;
    char puffer[ZEILENLAENGE];
    char name[20];
    char searchstring[20];
    int x, y;

    printf("Welche Datei wollen Sie zum Lesen öffnen: ");
    scanf("%s",name);

    if((quelle=fopen(name,"r")) == NULL)
    {
    fprintf(stderr,"Kann %s nicht oeffnen\n",name);
    exit (0);
    }

    while(fgets(puffer,ZEILENLAENGE,quelle) != NULL){

    x=strlen(puffer);
    x = x-10;
    y=x-20;

    .....????
    }
    return 0;
    }

    Kann mir jemand weiterhelfen???
    Danke



  • strncpy(target_buff, source_buff + offset, num_of_chars_to_copy)
    


  • Hi !
    Check this out:

    // from, to inclusive.
    int StrPosCpy( const char* src, char* buf, unsigned bufsize,
    										unsigned from, unsigned to )
    {
    	if ( to > ( strlen(src) - 1 ) )
    		return 1;
    	if ( ( to - from + 2 ) > bufsize )
    		return 1;
    
    	memset ( buf, 0, bufsize ); // Nullterminierung sicherstellen.
    	strncpy( buf, src + from, to - from + 1 );
    	return 0;
    
    }
    
    int main()
    {
    	char a[200] = {0}, b[200] = {0};
    	int x = 3, y = 7;
    
    	strcpy ( a, "Hallo, das ist eine demo!" );
    	StrPosCpy( a, b, sizeof(b), x, y );
    	puts( b );
    
    	return 0;
    }
    

Anmelden zum Antworten