>>655
一般的にchar型に入れる文字コード上で、
数字を表す文字'0'〜'9'は連続した数値で表される
'0' = 48
'1' = 49
'2' = 50
(以下略)
だから、iが10進で一桁であれば、'0'+iで該当の文字コード(数値)が得られる
○ i=2の時に、2を'2'に変換
'0'+i = 48+2 = 50 = '2'

iが0〜9で無い場合(10以上とか負数とか)であれば
charの配列とitoaやsprintf辺りを使う。

char str[256];/* 全体で255文字まで保存出来る領域) */
char *ch;
int i;

ch = "hoge";

sprintf(str, "%s%d", ch, i);

「char str[256]」と「char *ch」の違いについては、また別途調べてみ。