hoge.strings
"hoge"="%sは不正な入力です。";

hoge.m
...
id hoge = NSLocalizedStringFromTable(@"hoge", @"hoge", @"hoge");
hoge = [NSString stringWithFormat:hoge, prm1];
fprintf(strerr, "%s¥n", [hoge UTF8String]);
...

てか、文字列操作の細かい部分をchar *でするかどうかの話でしょ?
なんで話変わってんの?