/*
* 字符串匹配
* 描述:
* 题目标题:
* 判断短字符串中的所有字符是否在长字符串中全部出现
* 详细描述:
* 接口说明
* 原型:
* boolIsAllCharExist(char* pShortString,char* pLongString);
* 输入参数:
* char* pShortString:短字符串
* char* pLongString:长字符串
* 知识点: 字符串,循环,指针
* 题目来源: 内部整理
* 练习阶段: 初级
* 运行时间限制: 10Sec
* 内存限制: 128MByte
* 输入:
* 输入两个字符串。第一个为短字符,第二个为长字符。
* 输出:
* 返回值:
* true - 表示短字符串中所有字符均在长字符串中出现
* false- 表示短字符串中有字符在长字符串中没有出现
* 样例输入: bc
* abc
* 样例输出: true
*/
#include <iostream>
#include <string>
#include <string.h>
using namespace std;
void Input(std::string &shortstr,std::string &longstr);
bool IsAllCharExist(char* pShortString,char* pLongString);
void Output(bool flag);
int main()
{
std::string shortstr;
std::string longstr;
const char* pShortString;
const char* pLongString;
Input(shortstr,longstr);
int shortstrlen = shortstr.size();
int longstrlen = longstr.size();
if(shortstrlen>longstrlen)
{
return -1;
}
pShortString = shortstr.c_str();
pLongString = longstr.c_str();
bool result = IsAllCharExist(const_cast<char*>(pShortString),const_cast<char*>(pLongString));
Output(result);
system("pause");
return 0;
}
void Input(std::string &shortstr,std::string &longstr)
{
getline(std::cin,shortstr,'\n');
getline(std::cin,longstr,'\n');
return;
}
bool IsAllCharExist(char* pShortString,char* pLongString)
{
int shortstrsize = strlen(pShortString);
int longstrsize = strlen(pLongString);
char c;
int flag = 0;
for(int i=0;i<shortstrsize;i++)
{
c = pShortString[i];
for(int j=0;j<longstrsize;j++)
{
if(c == pLongString[j])
{
flag = 1;
break;
}
flag = 0;
continue;
}
if(flag==0)
{
return false;
}
else
{
continue;
}
}
return true;
}
void Output(bool flag)
{
if(flag)
{
std::cout << "true" << endl;
}
else
{
std::cout << "false" << endl;
}
return;
}