¿Cómo imprimir correctamente enteros y cadenas en c?

Tengo el siguiente código:

char *s1, *s2;
char str[10];

printf("type a string: ");
scanf("%s", str);

s1 = &str[0];
s2 = &str[2];

printf("%s\n", s1);
printf("%s\n", s2);

Cuando ejecuto el código, e ingrese la entrada "A 1" de la siguiente manera:

type a string: A 1

Obtuve el siguiente resultado:

A
�<�

Estoy tratando de leer el primer carácter como una cadena y el tercer carácter como un entero, y luego imprimirlos en la pantalla. El primer carácter siempre funciona, pero la pantalla solo muestra elementos aleatorios después de eso ... ¿Cómo debo solucionarlo?

Gracias

Respuestas a la pregunta(3)

Su respuesta a la pregunta