#include "stdafx.h"#include#include #include #pragma comment(lib,"Shlwapi.lib")#include //#include using namespace std;VOID Sub_1();//双字查找最后一个出现 wcsrchrBOOL Sub_2();//单字查找第一个出现 StrStrIWBOOL Sub_2_1();//单字查找第一个出现 StrStrIAVOID Sub_3();//双字查找从最后一个查找 wcscatVOID Sub_3_1();//wcsstr //wcsstr(BufferData, L".") wcsstrVOID Sub_4();//CString 双字查找从最后查找 CString ReverseFindVOID Sub_5();//双字查找从最后一个开始找wcsrchrVOID Sub_6();//单字查找从最后一个开始找 strrchr strrchr(BufferData, '\\')VOID Sub_7();//单字查找从第一个开始找 strstr strstr(BufferData, ".")VOID Sub_8();//单字查找从第一个开始找 strchr strchr(BufferData,'.')#pragma warning(disable:4996) int main(){ //Sub_1(); //双字查找最后一个出现 //Sub_2(); Sub_2_1();//单字查找第一个出现 StrStrIA //Sub_3(); //双字查找第一个出现 //Sub_3_1(); //Sub_4(); //Sub_6(); //Sub_7(); //Sub_8(); return 0;}VOID Sub_1()//双字查找最后一个出现 wcsrchr{ WCHAR Sour[1024] = L"c:\\1\\1\\1.txt"; WCHAR* FindPoint = NULL; printf("Sour:%S\r\n", Sour); //WCHAR wzDest[1024] = L"D:"; FindPoint = wcsrchr(Sour, '\\');//wcsrchr是一种函数,功能是从一个字符串中寻找某个字符最后出现的位置。 if (FindPoint != NULL) { *FindPoint = '\0'; // wcscpy(wzDest, wzSour); //双字拷贝 wcscat(Sour, L"\\2.dll");//双字连接 *FindPoint = '\\'; } printf("Dest:%S\r\n", Sour); //printf("Sour:%S\r\n", wzSour);// printf("Dest:%S\r\n", wzDest);}BOOL Sub_2()//双字查找第一个出现 StrStrIW{ WCHAR wzSour[1024] = L"C:\\windows\\system32\\notepad.exe"; WCHAR* FindPoint = NULL; WCHAR v1[1024] = L"Notepad.exe"; FindPoint = StrStrIW(wzSour, v1); if (FindPoint != NULL) { return TRUE; } return FALSE;}BOOL Sub_2_1()//单字查找第一个出现 StrStrIA{ CHAR szSour[1024] = "C:\\windows\\system32\\notepad.exe"; CHAR* FindPoint = NULL; CHAR v1[1024] = "Notepad.exe"; FindPoint = StrStrIA(szSour, v1); if (FindPoint != NULL) { return TRUE; } return FALSE; }VOID Sub_3() //双字查找从最后一个查找 wcscat{ WCHAR Sour[1024] = L"C:\\windows\\system32\\notepad.exe"; WCHAR* FindPoint = NULL; WCHAR Dest[1024] = L"D:"; FindPoint = wcsstr(Sour, L"\\");//wcsrchr是一种函数,即Scan a string for the last occurrence of a character,功能是从一个字符串中寻找某个字符最后出现的位置。 if (FindPoint != NULL) { wcscat_s(Dest, FindPoint); /*功能:把strSource所指字符串添加到strDestination结尾处,覆盖 strDestination结尾处的'\0'并添加'\0'。 说明:strSource和strDestination所指内存区域不可以重叠且strDestination 必须有足够的空间来容纳strSource的字符串。 备注 : 因为wcscat在strDestination追加strSource前不进行检查,这是一个 缓冲区溢出的潜在原因。故使用时应注意。推荐使用wcscat_s替代.*/ } printf("Sour:%S\r\n", Sour); printf("Dest:%S\r\n", Dest);}VOID Sub_3_1() //wcsstr(BufferData, L".") wcsstr{ WCHAR BufferData[MAX_PATH] = L"C:\\1.txt"; WCHAR* FindPoint = NULL; FindPoint = wcsstr(BufferData, L".");//单字查找 if (FindPoint != NULL) { *FindPoint = '\0'; wcscat(FindPoint, L".dll");//双字连接 } printf("%S", BufferData); }VOID Sub_4() //CString 双字查找从最后查找 CString ReverseFind{ WCHAR v1[MAX_PATH] = L"C:\\1\\1\\1.txt"; WCHAR* FindPoint = NULL; CString v2 = v1; int iPos = v2.ReverseFind('\\');//5 CString v3 = v2.Left(iPos + 1); v3 += L"1.dll"; printf("%S", v3.GetBuffer());}VOID Sub_5()//双字查找从最后一个开始找wcsrchr{ WCHAR BufferData[1024] = L"c:\\UMS\\UMS\\UMS.txt"; WCHAR* v1 = NULL; printf("%S\r\n", BufferData); v1 = wcsrchr(BufferData, '\\');//wcsrchr是一种函数,功能是从一个字符串中寻找某个字符最后出现的位置。 if (v1 != NULL) { *v1 = '\0'; wcscat(BufferData, L"\\HelloWorld.dll");//双字连接 } printf("%S\r\n", BufferData); printf("Input AnyKey To Exit\r\n"); getchar();}VOID Sub_6()//单字查找从最后一个开始找 strrchr strrchr(BufferData, '\\'){ char BufferData[1024] = "c:\\Shine\\Shine\\Shine.txt"; char* v1 = NULL; printf("%s\r\n", BufferData); v1 = strrchr(BufferData, '\\');//strrchr是一种函数,功能是从一个字符串中寻找某个字符最后出现的位置。 if (v1 != NULL) { *v1 = '\0'; strcat_s(BufferData, "\\HelloWorld.dll");//单字连接 } printf("%s\r\n", BufferData); printf("Input AnyKey To Exit\r\n"); getchar();}VOID Sub_7()//单字查找从第一个开始找 strstr strstr(BufferData, "."){ /* strstr 编辑 strstr(str1, str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。*/ char BufferData[1024] = "c:\\Shine\\Shine\\Shine.txt"; char* v1 = NULL; printf("%s\r\n", BufferData); v1 = strstr(BufferData, ".");//strstr是一种函数,功能是从一个字符串中寻找某个字符最后出现的位置。 if (v1 != NULL) { *v1 = '\0'; strcat_s(BufferData, "\\HelloWorld.dll");//单字连接 } printf("%s\r\n", BufferData); printf("Input AnyKey To Next\r\n"); getchar();}VOID Sub_8()//单字查找从第一个开始找 strchr strchr(BufferData,'.'){ char BufferData[1024] = "c:\\UMS\\UMS\\UMS.txt"; char* v1 = NULL; printf("%s\r\n", BufferData); v1 = strchr(BufferData,'.');//strchr是一种函数,功能是从一个字符串中寻找某个字符最后出现的位置。strchr函数原型:extern char *strchr(const char *s,char c);查找字符串s中首次出现字符c的位置。 if (v1 != NULL) { *v1 = '\0'; strcat_s(BufferData, "\\HelloWorld.dll");//单字连接 } printf("%s\r\n", BufferData); printf("Input AnyKey To Exit\r\n"); getchar();}
整理了一些WCHAR、CHAR的从头、尾查找第一次出现函数。