Estoy realizando un programa en el cual tengo que leer una frase de un archivo y guardarla en un puntero. Hasta ahi no hay ningun problema. Luego lo que tengo que hacer es seleccionar un entero desde el cual se va a leer la frase y cuantos caracteres quiero leer de esa frase. Lo que queda va a ser guardado en un nuevo puntero que tengo que mostrar por pantalla.
Entonces si tengo la frase
"Universidad de Buenos Aires"
Y leo desde el caracter 4 unos 5 caracteres, en mi nuevo puntero tendria que quedar "ersida".
Hasta ahora he tratado de hacerlo y no le encuentro la forma, cuando intento que lea desde un cierto caracter o no copia nada al nuevo puntero o copia letras que no tendrian que ir.
Les dejo mi codigo para ver si me pueden ayudar para ver en que me estoy equivocando.
El programa se divide en una parte en donde le pido la informacion al archivo y la guardo en un nuevo puntero y la otra parte en donde intento a partir del puntero ya existente, crear otro.
Código
[/#include <stdio.h> #include <stdlib.h> char * subcadena (char * p, unsigned int i, unsigned int n); ///Esta funcion recibe mi puntero original y la longitud que quiero y retorna un nuevo puntero. char * LECTURA(); int main() { char *pa; /// Puntero donde guardo la informacion del archivo char *pb; unsigned int inicio; unsigned int cantidad; pa=LECTURA(); pb=subcadena(pa,inicio,cantidad); return 0; } char* LECTURA() { int i=0; char c; char *pa; FILE*arch; arch=fopen("C:\\Users\\PC\\Desktop\\frases.txt","r"); ///Supongamos que en el txt esta "Universidad De Buenos Aires" - Solo esa frase. { *(pa+i)=c; i++; } *(pa+i)='\0'; return pa; } char * subcadena (char * p, unsigned int i, unsigned int n) { int j=0; char * pc; char letra; while(*(p+i)!='\0' && i<=n) { letra=*(p+i); *(pc+j)=letra; j++; i++; } *(pc+j)='\0'; return pc; } code]