c语言有关函数以及数组的练习

顺序输出两个字符数组中相同的元素

#include 
#include 
#define S 100
char A(char str1[100], char str2[100]);
char A(char str1[100], char str2[100]){
    char str[S],m[S];
    int a=0,b=0;
    for(int i=0;i<strlen(str1);i++){
        for(int j=0;i<strlen(str2);j++){
            if(str1[i]==str2[j]){
                str[a]=str1[i];
                a++;
                break;
            }
        }
    }
    str[a]='\0';
    return str[S];
    
    for(char i='a';i<='z';i++){
        if(str[i]=='a'){
            int o=0;
            for(int j=0;i<strlen(m);j++){
                if(m[i]==m[j]){
                    o=1;
                }
            }
            if(o==0){
                m[b]=str[i];
                b++;
            }
        }
    }
    m[b]='\0';
    return m[S];
}
int main() {
    char set1[S], set2[S];
    printf("请输入set1的内容:");
    gets(set1);
    printf("请输入set2的内容:");
    gets(set2);
    printf("%s",A(set1,set2));
    return 0;
}

没有结果输出

你自己先得想清楚,A函数你到底要返回什么?是一个字符,还是一个字符串???是字符串,那返回值类型要用char *,是字符,则最后printf应该是%c。你这乱套的。
而且函数中间有个return str[S],那在它之后的代码是永远也执行不到的,所以你自己要清楚你的代码逻辑

你这函数A纯粹是在瞎写
自己先找张纸,好好把逻辑捋清楚,然后按照逻辑编写代码
你自己回头看看自己写的东西,能看明白吗
自己写的代码自己都看不懂,计算机能看懂吗