C语言程序题:请输入两个字符串str1和str2...求助各位大佬,感激不尽!!

请输入两个字符串str1和str2,将str1中出现在str2中的字符找出并输出,相同的只输出一次,例:输入串1:12abcd输入串2:2342bAC输出信息:12abc... 请输入两个字符串str1和str2,将str1中出现在str2中的字符找出并输出,相同的只输出一次,例:输入串1:12abcd
输入串2:2342bAC
输出信息:12abcd中出现在2342bAC中的字符有2b
展开
 我来答
听不清啊
高粉答主

2018-12-03 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

#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])
    { printf("%c",*q);
      c[*q]=1;
    }
  printf("\n");
  return 0;
}
刀劈华山
2018-12-03 · TA获得超过2273个赞
知道小有建树答主
回答量:1338
采纳率:72%
帮助的人:377万
展开全部
#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;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式