Vector - CAPL - 字符串查找与检查

目录

字符串查找&替换

mbstrncmp & mbstrncmp_off

代码示例

mbstrstr & mbstrncpy_off

代码示例

strstr & strstr_off

代码示例

strstr_regex & strstr_regex_off

代码示例

str_match_regex

代码示例


        对于字符串的查找,无论在任何一种编程语言中都是必不可少的,可以极大的解决我们代码开发工作中的问题,今天我们主要介绍字符串中查找特定字符串以及替换特定的字符串;这其中也包含了正则匹配的方法进行查找,也是相当的方便。

字符串查找&替换

mbstrncmp & mbstrncmp_off

功能:比较两个字符串

说明:函数将s1与s2进行比较,比较的最大长度为len个字符。

s1:字符串1

s2:字符串2

len:要比较的最大字符数

s1offset:字符串s1的起始比较位置

s2offset:字符串s2的起始比较位置

返回值:

      • 0:字符串s1和S2字符串相同
      • 1:字符串s1大于字符串s2
      • -1:字符串s1小于字符串s2

代码示例

char s[50] = "'Tür' is the german word for 'door'.";
write("%d", mbstrncmp_off(s, 13, "german", 0, 6)); 
write("%d", mbstrncmp("vector", "vector", 6)); 
write("%d", mbstrncmp("vec", "vector", 6)); 
//输出结果
// 0
// 0
//-1

mbstrstr & mbstrncpy_off

功能:在字符串中搜索某段特殊字符;在字符串s1中搜索字符串s2

s1:字符串1

s2:字符串2

offset:开始搜索的起始未知在字符串s1中

返回值:s1中s2字符的第一个位置,如果s1中找不到s2,则为-1

代码示例

long pos;
char s[50] = "'Tür' is german for 'door'";
pos = mbstrstr(s, "german");
write("%d", pos); // 9
//输出结果
// 9

strstr & strstr_off

功能:在字符串中搜索某段特殊字符;在字符串s1中搜索字符串s2

说明:根据字符串编码,字符可能需要几个字节,例如Windows ANSI(932)编码中的日语字符或UTF-8编码中的任何特殊字符。在这种情况下,可使用函数mbstrstr/mbsstr_off。

s1:字符串1

s2:字符串2

offset:在s1中开始查找的位置

返回值:s1中s2的第一个字节位置,如果s1中找不到s2,则为-1。

代码示例

long pos;
char s1[18] = "Vector Informatik";
char s2[11] = "Informatik";
pos = strstr(s1, s2); 
//输出结果
// pos = 7

strstr_regex & strstr_regex_off

功能:在字符串中搜索正则表达式模式。

s:被查找的字符串

offset:开始搜索的偏移量

pattern:搜索的正则表达式。

返回值:找到字符串的位置,如果未找到,则为-1。

代码示例

char buffer[70] = "Vector Informatik";
long res;
res = strstr_regex(buffer, "Inf[a-z]*"); 
res = strstr_regex_off(buffer, res + 1, "Inf[a-z]*"); 
//输出结果
// 7
// -1

str_match_regex

功能:检查字符串是否与正则表达式匹配一致

s:待检查字符串

pattern:正则表达式

返回值:

1:如果字符串与正则表达式完全匹配一致返回1

0:如果字符串与正则表达式不完全匹配一致返回0

代码示例

char buffer[70] = "Vector Informatik";
long res;
res = str_match_regex(buffer, "Vector [A-Za-z]*"); 
write("res is %d", res);
res = str_match_regex(buffer, "Inf[a-z]*"); 
write("res is %d", res);
//输出结果
// res is 1
// res is 0

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

车载网络测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值