char,wchar字符串常用操作(查找,分割)

     字符串操作是比较常见的。这里搜集下自己比较经常使用的字符串操作例子。后续慢慢补充。

     

#include <locale.h>
#include <Shlwapi.h>

#pragma comment(lib,"Shlwapi.lib")

void CharNormalOp();
void WcharNoramlOp();

int main(int argc,char *argv[])
{
	setlocale(LC_ALL,"chs");  

	CharNormalOp();
	printf("\r\n");
	WcharNoramlOp();
}

void CharNormalOp()
{
	char str1[MAX_PATH] = {'\0'};
	char str2[MAX_PATH] = {'\0'};

	//strcpy 
	strcpy(str2,strcpy(str1,"abcde@fgh@tjk@lmn@123009333"));
	puts(str1);
	puts(str2);

	//strcat
	strcat(str2,strcat(str1,"##kkkmmm##"));
	puts(str1);
	puts(str2);

	//strcmp
	if(0 == strcmp(str1,str2))
	{
		puts("str1 equals str2");
	}

	//忽略大小写比较
	if(0 == stricmp(str1,str2))
	{
		puts("str1 eaquals str2 when ignore case");
	}

	//字符串查找
	if(strstr(str2,str1))
	{
		puts("str2 contains str1");
	}

	//字符串忽略大小写查找
	if(StrStrIA(str1,"ABCD"))
	{
		puts("str1 contains abcd when ignore case");
	}

	//分割字符串
	char *cur = str2;
	char *p = strtok(cur,"@");
	while(p)
	{
		printf("sub string = %s\r\n",p);
		cur += (strlen(p)+strlen("@"));
		p = strtok(cur,"@");
	}
}

void WcharNoramlOp()
{
	WCHAR str1[MAX_PATH] = {L'\0'};
	WCHAR str2[MAX_PATH] = {L'\0'};

	//wcscpy 
	wcscpy(str2,wcscpy(str1,L"我们@学习@发展@KK3@123"));
	printf("str1=%S\r\n",str1);
	printf("str2=%S\r\n",str2);

	//strcat
	wcscat(str2,wcscat(str1,L"##km环境##"));
	printf("str1=%S\r\n",str1);
	printf("str2=%S\r\n",str2);

	//strcmp
	if(0 == wcscmp(str1,str2))
	{
		printf("str1 equals str2\r\n");
	}

	//忽略大小写比较
	if(0 == wcsicmp(str1,str2))
	{
		printf("str1 eaquals str2 when ignore case\r\n");
	}

	//字符串查找
	if(wcsstr(str2,str1))
	{
		printf("str2 contains str1\r\n");
	}

	//字符串忽略大小写查找
	if(StrStrIW(str1,L"kk3"))
	{
		printf("str1 contains kk3 when ignore case\r\n");
	}

	//分割字符串
	WCHAR *cur = str2;
	WCHAR *p = wcstok(cur,L"@");
	while(p)
	{
		printf("sub wstring = %S\r\n",p);
		cur += (wcslen(p)+wcslen(L"@"));
		p = wcstok(cur,L"@");
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值