Проблема банальна, решения точного не существует. Меня интересует, кто что думает о лучшем решении.
В функцию передается указатель char*. Он показывает на строку, но она может быть не закончена нулем. Ничего не поделаешь — строка передается из Фортрана, там это не обязательно. Она не может внутри себя иметь пробелов и может их иметь в конце (но может не иметь). Если пробелы в конце есть — первый из них рассматривается как конец строки.
Эту строку надо сравнить с массивом других и найти равную.
Ясно, что точного решения нет, но что лучше всего сделать ?
Изменения в строке делать нельзя (например) искать пробел и встроить на его место ноль), так как строка может храниться на странице read-only. Копировать можно, но опять-таки где ее конец — сказать трудно.
Свое решение не привожу, интересно, кто что скажет.