scanf будет читать в строку C, а не в строку NSString (насколько я знаю). Итак, чтобы сделать то, что вы пытаетесь сделать, вам нужно сначала прочитать ваш ввод в строку C (т.е. str), а затем преобразовать это в NString следующим образом
myString = [NSString stringWithUTF8String:str];
Кстати, вам не нужно передавать адрес строки, т.е. строки, если строка является массивом. Просто сделайте:
scanf("%s",str);