文字列を数値に変換したいです

文字コードの意味をよく理解していないですが
例えば
char str[80];
int num;
scanf("%s",str)
num = str - '0';
aを入力した場合
97ー48で49がnumに入り
%dで出力したら49がでるのでしょうか。
ならばこれを%cで出力したら1?
今実行環境がありません;;