悬赏C语言编程

来源:百度知道 编辑:UC知道 时间:2024/06/11 06:01:14
各位帮忙看下面这个编程题怎么写

字符串A,字符串B,A,B都含有汉字。B包含A定义如下: A中出现的字符在需要在B中出现,如果A中有汉字,B中的对应汉字的个数不少于A,出现的次序不重要。中文字符采用GDK编码(简单来说,就是两个字节,高字节头一位为1,低字节头一位可以不为1)编程实现,int is_include(char* A, char* B); B包含A则返回1,否则为0。

#include <stdio.h>
#include <windows.h>

//返回str中ch的个数
int CharCounter(const wchar_t* str, wchar_t ch);
//判断是否中文,是返回非0
int IsChinese(wchar_t ch);

//你要的函数
int is_include(char* B, char* A);

int main(int argc, char* argv[])
{
char strA[100];
char strB[100];

strcpy(strA, "我是中国人");
strcpy(strB, "iamchinese,我是中国人,我是中国人.");
printf("%d\n", is_include(strB, strA));

return 0;
}

int is_include(char* B, char* A)
{
//
int lenA = strlen(A);
int lenB = strlen(B);
wchar_t* pWB = new wchar_t[lenB + 1];
wchar_t* pWA = new wchar_t[lenA + 1];
// wchar_t* pWT = new wchar_t[lenA + 1];//存放处理过的字符

//如果转换后字符串不合要求(不是最高位为1),可以自己实现这两个函数,就是看到高位为1的字符则将字符想相临两个char合并为short,wchar_t也是short类型.
MultiByteToWideChar(CP_ACP, 0, A, lenA + 1, pWA , 50);
MultiByteToWideChar(CP_ACP, 0, B