Хорошо, поскольку вы не хотите использовать RegEx, и вы сформулировали свой вопрос так же, как и в глубоком анализе кода, я теперь предлагаю использовать (часть) компилятор для лексического анализа.Этот способ очень сложный и трудоемкий.Но вы можете проанализировать практически все, что касается вашего кода.И вы многому научитесь.
Итак, основная идея заключается в том, что компилятор берет ваш код на C / C ++ и сначала выводит его в граф, называемый AST (абстрактное синтаксическое дерево).На этом графике вы можете найти так называемые токены, которые представляют ваши различные «части» программы.
Идея проста: если вы скажете компилятору, что не хотите оптимизировать, прежде чем лексер построит AST, тогдавы найдете либо ваши строки, либо переменные, которые будут содержать строки.Поэтому вам нужно взять AST, найти все соответствующие функции и затем проверить параметры, являются ли они строками или переменными строк.
Несколько лет назад я сделал нечто подобное с пакетом python "pycparser".
Однако я должен предупредить вас, что это будет много работы.Я настоятельно рекомендую вам сначала спросить себя, почему вы хотите сделать это, и проверить, нет ли доступных инструментов для выполнения того, что вы хотите сделать.