У меня есть строки, содержащие специальные символы, например,
"ravi", "Ravi" ,"!ravi","ravi...","RaVi)" etc..
Я хочу, чтобы все это рассматривалось как одно и то же. Как этого добиться. Может быть в сценарии оболочки, C, C ++, JAVA.
Спасибо, Рави.
В C я бы использовал isalpha в цикле, удаляя ненужные символы перед обработкой строки.
isalpha
#include <ctype.h> /* ... */ loop { if (isalpha((unsigned char)*src)) *dst++ = *src; src++; }
Java: str.toLowercase().replace("[^a-zA-Z]", "") отобразит их все в нижнем регистре с удаленными специальными символами и, следовательно, все equal()
str.toLowercase().replace("[^a-zA-Z]", "")
equal()
Отредактировано, чтобы охватить все , а не альфа как "специальный"
Используйте find функцию String в c ++, чтобы найти вхождение вашей подстроки в вашем случае "ravi".
size_t find ( const string& str, size_t pos = 0 ) const;
Он вернет вам начальный индекс вашей подстроки в основной строке.
Используя эту информацию, вы можете манипулировать строкой согласно вашему требованию.
Подробнее о строке :: find