两个字符串的最长公共单词

用strtok拆分字符串,strcmp比较字符串是否相等,strlen比较相等字符串的大小

char*strtok(char*strTOKen,const char*strDelimit);

第一个参数:字符串

第二个参数:字符串的分隔符

/*输出两个字符串的最长公共单词*/
void Lostcommonwoed(char*str,char*arr)
{
	int Max = 0;
	vector<char*> q;
	vector<char*> s;
	const char sep[] = " .,";//分隔符
	char* tok = nullptr;
	char* fdr = nullptr;
	int len = 0;//存储最大长度
	char* r = nullptr;//指向最长公共单词
	for (tok = strtok(str, sep); tok != nullptr; tok = strtok(nullptr, sep))
	{
		q.push_back(tok);
	}
	for (fdr = strtok(arr, sep); fdr != nullptr; fdr = strtok(nullptr, sep))
	{
		s.push_back(fdr);
	}
	for (int i = 0; i < q.size(); i++)
	{
		for (int j = 0; j < s.size(); j++)
		{
			if (strcmp(q[i], s[j]) == 0)
			{
				int n = strlen(q[i]);
				if (n > len)
				{
					len = n;
					r = q[i];
				}
			}
		}
	}
	cout << len << endl;
	cout << r << endl;
}
void main()
{
	char str[] = "i.am,a student";
	char arr[] = "you are a student";
	Lostcommonwoed(str, arr);
}

运行结果:

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秉麟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值