当系统自动读入某一类型的图片时,通常将文件的地址保存在一个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; }
时间: 2024-11-08 23:30:50