continue LABEL2;
вызывает увеличение только внешнего цикла. если у вас
LABEL2 : for(;j <3;j++){
LABEL1 : for(;i < 3; i++){
if (true)
continue LABEL1;
}
}
i
будет увеличиваться.
Во-первых, то, что Вы описываете, черный список . Ваш более оптимальный вариант к белый список Ваши символы, поскольку легче (с пользовательской точки зрения) вставить символы, а не устраненный.
С точки зрения того, что было бы хорошо в среде Unix:
-
) _
) .
) Должен покрыть Ваши основы. Пробелы могут быть хорошо, но сделать вещи трудными. Пользователи Windows любят их, unix/linux не делают. Таким образом в зависимости от Вашей целевой аудитории выбирают соответственно.
Часто забываемый: двоеточие (:) не хорошая идея, так как это является наиболее часто используемым в материале как $PATH, т.е. списке каталогов, где исполняемые файлы найдены "автоматически". Это может вызвать беспорядок с именами каталогов DOS/Windows, где, конечно, двоеточие используется в именах дисковода.
Позвольте пользователю ввести любое имя, которое он хочет. Искусственно ограничение диапазона символов будет только раздражать пользователей и не служить никакой реальной цели.
минимум наклонная черта (' / ') и ПУСТОЙ УКАЗАТЕЛЬ ('\0')
Не забывайте, что можно добавить точку (.
) вначале для сокрытия файлов и папок... Иначе я следовал бы *, ОТКЛОНЯЮТ соглашение о присвоении имен (из Википедии):
Большинство файловых систем UNIX
/
, null
.