2013-09-30 3 views
0

Существует ли известная стандартная методика для анализа строки URL-адреса mailto на компоненты с помощью программы C? Или я должен сделать это вручную, используя библиотеку строк C с моей собственной логикой?C API для разбора парсера mailto

электронной почты:? [email protected] Заголовок = Это% 20is% 20the% 20subject & [email protected] & тела = Это% 20is% 20the% 20body

Есть способ сделать это с помощью API-интерфейсов regex?

+1

Поскольку вы указали C++ в своих тегах, Boost имеет модуль регулярных выражений, который может использоваться для проверки электронной почты: http://www.codeobsessed.com/code/viewtopic.php?f=18&t=156 – lucasg

+0

@georgesl c + +11 имеет регулярное выражение, нет необходимости в Boost, однако при использовании регулярного выражения для проверки адресов электронной почты возникает множество проблем - см. [Этот вопрос] (http://stackoverflow.com/questions/201323/using-a-regular-expression-to -validate-a-email-address) для более подробной информации. – msam

+1

@msam не все компиляторы (g ++, sigh) реализуют регулярное выражение в удобном для использования способом. – stefan

ответ

0

Прежде всего, C или C++? Я предполагаю, что вы работаете на C++. Если да, взгляните на сообщение this.
В нем упоминается библиотека под названием cpp-netlib, которая содержит класс с именем uri. Он должен соответствовать вашим целям.

+0

Я ищу реализацию C. Удалено C++ из тега – Bose

+0

@Bose Я смущен. Вам нужен C или C++? – hauzer

+0

Извините, опечатка Мне нужно C – Bose

0

Вы можете использовать strstr для поиска mailto: и взять символы, которые вы хотите.

Вот пример:

char *mailto = strstr(str, "mailto:"); 

char *qm = strchr(mailto, '?'); 

char *email = mailto + strlen("mailto:"); 

*qm = '\0'; 

Вы можете взять другие компоненты, используя то же самое. Письмо должно указывать на адрес [email protected] Тем не менее, это приведет к изменению входной строки.

+0

Вот как я планирую это делать, но просто задавались вопросом, имеются ли стандартные библиотеки API для той же цели. – Bose

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