C++中判断String是否包含某些特定字符

如果觉得这篇文章对您有所启发,欢迎关注我的公众号,我会尽可能积极和大家交流,谢谢。 



 当系统自动读入某一类型的图片时,通常将文件的地址保存在一个String类型的字符串中,此时需要判断该文件的类型是否为所要求的类型(例如是否为一张图片等),常用的方法是判断该文件地址中是否包含特定类型的扩展名(如.jpg),则问题转化为如何判断String字符串中是否包含某些特定字符。

  方法之一就是利用标准库函数strstr()。strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。找到所搜索的字符串,则该函数返回第一次匹配的字符串的地址;如果未找到所搜索的字符串,则返回NULL。但strstr()函数接受的参数为const char*,String的成员函数c_str得到的是char*成员,但char*如何无法直接转换为const char*,需要用strcpy_s()另开辟一段内存,把字符一个一个复制过去,然后进行strstr()函数的调用,代码如下

其中stImagePath是一个String类型的变量:

char* chImagePath = new char[strlen(stImagePath.c_str()) + 1];
strcpy_s(chImagePath,strlen(stImagePath.c_str()) + 1,stImagePath.c_str());
char* pJpg = strstr(chImagePath,".jpg");//判断名字中是否出现相应字符
char* pBmp = strstr(chImagePath,".bmp");
char* pPng = strstr(chImagePath,".tif");
char* pJPG = strstr(chImagePath,".JPG");
if(pJpg==NULL && pBmp==NULL && pPng==NULL && pJPG==NULL)
{
break;
}


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值