增加 xy_str_find

This commit is contained in:
Mikachu2333
2025-10-01 15:45:59 +08:00
committed by 曾奥然
parent bb2d3af1f3
commit 027c40c8e9

View File

@@ -9,7 +9,7 @@
* | BingChunMoLi <bingchunmoli@bingchunmoli.com>
* |
* Created On : <2023-08-28>
* Last Modified : <2025-08-27>
* Last Modified : <2025-09-29>
*
*
* xy: 襄阳、咸阳
@@ -609,6 +609,42 @@ xy_str_strip (const char *str)
return new;
}
typedef struct
{
bool found;
size_t begin;
size_t end;
}
XyStrFindResult_t;
/**
* @brief 查找子串返回是否命中以及子串在原串中的起止位置0 基end 为闭区间)
*/
static XyStrFindResult_t
xy_str_find (const char *str, const char *substr)
{
XyStrFindResult_t result = { .found = false, .begin = 0, .end = 0 };
if (!str || !substr)
return result;
if ('\0' == substr[0])
{
result.found = true;
return result;
}
const char *pos = strstr (str, substr);
if (!pos)
return result;
result.found = true;
result.begin = (size_t) (pos - str);
result.end = result.begin + strlen (substr) - 1;
return result;
}
/**
* @brief 读取文件内容并返回字符串,失败时返回空字符串
@@ -1617,4 +1653,5 @@ xy_map_each (
}
}
#endif