2015-03-06 3 views
0

Я только что закончил писать довольно большой кусок игры, которая отлично работает, но есть проблема с преобразованием слов угадывания в звездочки с пространством, где есть пробел. Например, если слова были «куриные самородки», он должен выглядеть как «****** *******» , но вместо этого он выходит «*********** *** " Поскольку код очень длинный, чтобы опубликовать его здесь, я знаю, что это линия, в которой я ошибся, но пока не могу найти работу.C программа: ошибка преобразования в несколько слов

for(i=0;i<strlen(words);i++){string[i]='*';} 

Любая помощь или толчок в правильном направлении были бы весьма полезными.

+1

Пожалуйста, разместите свой код в блоке кода и опубликуйте весь код, чтобы мы могли посмотреть. – Reid

ответ

0
// Compute the length of the string ahead of the loop. 
// Don't compute it in every run of the loop. 
int len = strlen(words); 
for (i = 0; i < len; i++) 
{ 
    if (!isspace(words[i])) 
    { 
     words[i] = '*'; 
    } 
} 
+1

Вы не должны перекомпилировать длину строки на каждой итерации. Ваш код очень неэффективен. – chqrlie

+0

@chqrlie, я знаю об этом. Я делал минимальные изменения в коде OP, чтобы заставить их двигаться. Хорошее наблюдение. –

+1

Я должен был быть более конкретным. ОП, похоже, не знает об этом. Используйте каждый случай, чтобы научить классическим ошибкам. – chqrlie

Смежные вопросы