¿Hay una función en la familia printf que devuelve una parte de la cadena?

Me refiero a este uso:

sprintf_with_start_pos(out_variable, 3, "format_str %s %i etc...", var1, var2);

y dicha función debería retener la salida de retorno hasta que llegue a la posición 3. Sé que puedo crear este efecto haciendo mi propio búfer y luego copiarlo, pero me pregunto si hay un forro para esto.

preguntado el 08 de febrero de 14 a las 12:02

Posición 3 en qué sentido? ¿Quieres imprimir los primeros 3 caracteres? Eso se hace usando %.3s. -

¿A qué te refieres con retener la producción? -

no, quiero imprimir desde el tercer carácter en adelante -

@rsk82 Entonces pasas var1 + 3 a la función. -

..después de comprobar que hay al menos tres caracteres. -

1 Respuestas

prueba.c:

#include <stdio.h>

main() {
    char* var1 = "1234567";
    char buffer[50];
    sprintf(buffer, "%s", &var1[2]);

    printf("%s\n", buffer);
    printf("%.3s\n", buffer);
}

Salida:

$ gcc test.c 
$ ./a.out 
34567
345

Respondido 08 Feb 14, 13:02

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.