Это демонстрирует опасность не использовать фигурные скобки даже для одной строки в операторах. Я подозреваю, что вы сделали это:
if (name[i] == '.')
str_length = i;
, а затем добавил break
позже. Если вы сделали это:
if (name[i] == '.') {
str_length = i;
}
заранее, было бы естественно добавить разрыв внутри фигурных скобок, и у вас не было бы ошибки.