请c语言大神解惑 编写一程序,实现从键盘输入两个字符串str1和str2,要求各串中无重复的字符,求

请c语言大神解惑
编写一程序,实现从键盘输入两个字符串str1和str2,要求各串中无重复的字符,求两者的交集。若交集非空,则输出。

#include <stdio.h>
#include <string.h>
int repeated(char* str)/*检查字符串内是否有重复的字符,有就返回1,无就返回0*/
{
    int i=0, len=strlen(str)-1;//调用strlen得到字符串的长度
    for(i=0; i<len; i++)/*依次查看每个字符在后面是否重复出现*/
        if(strchr(str+i+1, str[i]))
            return 1;/*一旦发现就立即返回*/
    return 0;
}
int main()
{
    int i, len, j=0;
    char s1[100], s2[100], s3[100];/*保存两个字符串和交集串*/
    char* s[2]={s1,s2};/*用一个数组s来管理s1和s2以便在下面用for循环处理*/
    for(i=0; i<2; i++){/*依次输入两个字符串*///这里使用do,while循环!因为至少要输出一次!
        do{
            printf("请输入第%d个字符串:\n", i+1);
            scanf("%s",s[i]);
        }while(repeated(s[i])&&printf("串内有重复字符!\n"));/*检查是否有重复*/
    }
    len = strlen(s1);
    for(i=0; i<len; i++)/*依次查找s1中的每一个字符是否在s2中存在*/
        if(strchr(s2,s1[i]))
            s3[j++] = s1[i];/*存在的字符就加入到交集中*/
    s3[j] = '\0';/*添加字符串结束标记,紧记C语言里的字符串一定要加上结束符!*/
    if(j>0)
        printf("交集为[%s]\n", s3);
    else
        printf("交集为空\n");
    return 0;
}

我把注释都完整了,少年还有不解之处,追问便是!


希望这些能给你提供一点帮助,亲!

追问

呜呜……报错了

追答

怎么可能!

你贴错了么……我发文件给你好了!


温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网