Esistono due funzioni molto simili alla fprintf ed alla fscanf, che però prendono come input una stringa e non uno stream; queste funzioni risultano molto utili perché in C una stringa è un array di caratteri, e potrebbe essere difficile gestirla con gli strumenti presentati fino ad ora. I due prototipi di funzione sono:
int sprintf(char *stringa, char *formato, argomenti ...);
int sscanf(char *stringa, char *formato, argomenti ...);
Le modalità di utilizzo sono analoghe a quelle spiegate in questa lezione (o nella lezione 7), ma proponiamo comunque un semplice pezzo di codice per far capire meglio come operano queste due funzioni:
#include <stdio.h>
int main()
{
char miastringa[80];
int distanza;
int tempo;
float velocita;
printf("*** Calcolo della velocita' ***");
printf("nInserisci la distanza -> ");
scanf("%d", & distanza);
printf("Inserisci il tempo -> ");
scanf("%d", & tempo);
velocita = (float)distanza/(float)tempo;
sprintf(miastringa,"Velocita' -> %2.3fn", velocita);
printf("%s", miastringa);
}