请输入两个字符串str1和str2,将str1中出现在str2中的字符找出并输出,相同的只输出一次
例:输入串1:12abcd输入串2:2342bAC输出信息:12abcd中出现在2342bAC中有2b...
例:输入串1:12abcd
输入串2:2342bAC
输出信息:12abcd中出现在2342bAC中有2b 展开
输入串2:2342bAC
输出信息:12abcd中出现在2342bAC中有2b 展开
3个回答
展开全部
#include <stdio.h>
#include <string.h>
int main( )
{ char a[200],b[200],c[127]= {0},*p,*q;
printf("请输入二个字符串:\n");
gets(a);
gets(b);
printf("%s中出现在%s中的字符有",a,b);
for(q=a; *q; 弯袜q++)
if((p=strchr(b,*q))&&!c[*q]) //串A中字符出现在串B中,且前面未出现过
{ printf("%c",*q); //输出此字符
c[*q]=1; //标记此字符已出现过
搜此 }
世闹迅printf("\n");
return 0;
}
展开全部
#include <stdio.h>
#include <string.h>
int find(char *str1, char *str2)
{
char s[64] = {0};
char s_new[64] = {0};
int i = 0, j = 0, m = 0, n = 0;
int len1 = strlen(str1);
int len2 = strlen(str2);
液枝/* 提取所有str1和str2的相同元素 */
for (i = 0; i < len1; i++)
{
for (j = 0; j < len2; j++)
{
if (str1[i] == str2[j])
{
s[m++] = str1[i];
}
}
}
/* 剔除相同元素中的重复元素并存入新数组中 */
for (i = 0; i < m; i++)
{
for (j = i+1; j < m; j++)
{
if (s[i] == s[j])
{
break;
}
}
if (j == m)
{
s_new[n++] = s[i];
}
}
printf("输出信息:%s中出现在%s中的字符有%s\n", str1, str2, s_new);
}
int main(int argc, char *argv[])
{
char str1[64] = 吵盯{0};
char str2[64] = {0};
printf("输入串1:"升埋和);
scanf("%s", str1);
printf("输入串2:");
scanf("%s", str2);
find(str1, str2);
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第十回:金寡妇贪利权受辱,张太医论病细穷源
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询