Определение окончаний строк в C.
Одна из распространенных операций при манипуляциях со строками — проверка, завершается ли данная строка другой. Эта функциональность имеет решающее значение в различных приложениях, включая обработку текста, сопоставление с образцом и анализ файлов.
В C существует несколько способов проверить, заканчивается ли строка определенной подстрокой. Один из эффективных методов включает использование функции std::string::compare, доступной в стандартной библиотеке C.
Функция сравнения сравнивает две строки и возвращает целочисленное значение, представляющее результат. Сравнивая последнюю часть исходной строки с потенциальной конечной подстрокой, мы можем определить, совпадают ли они.
Следующий код демонстрирует, как реализовать этот подход:
#include
bool hasEnding(const std::string& fullString, const std::string& ending) {
if (fullString.length() >= ending.length()) {
return (0 == fullString.compare(fullString.length() - ending.length(), ending.length(), ending));
} else {
return false;
}
}
int main() {
std::string test1 = "binary";
std::string test2 = "unary";
std::string test3 = "tertiary";
std::string test4 = "ry";
std::string ending = "nary";
std::cout В этом коде мы сначала определяем функцию hasEnding, которая принимает на вход две строки. Функция возвращает логическое значение, указывающее, заканчивается ли первая строка второй.
Внутри функции мы проверяем, превышает ли длина первой строки длину второй строки или равна ей. Если нет, функция возвращает false.
Если проверка длины пройдена, мы используем сравнение для сравнения последней части первой строки со второй строкой. Функция сравнения возвращает 0, если две строки равны. Именно это мы и проверяем, чтобы определить, заканчивается ли первая строка второй.
Функция main проверяет функцию hasEnding с несколькими входными строками и выводит результаты.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3