字符串的C语言问题请解答

有两个字符串s和t,计算既在字符串s中出现,又在字符串t中的字符组成一个新的字符串w

img

#include<stdio.h>
int main()
{
    int i,j,k=0;
    char s[250],t[250],z[250];
    printf("请输入字符串s:");
    gets(s);
    printf("请输入字符串t:");
    gets(t);
    int a=strlen(s);
    int b=strlen(t);
    for(i=0; i<a; i++)
    {
        for(j=0; j<b; j++)
        {
            if(s[i]==t[j])
            {
                z[k]=t[j];
                k++;
            }
        }
    }
        
    printf("字符串w:");
    /*for(j=0; j<k; j++)
    {
        printf("%c",z[j]);
    }*/
    puts(z);
    return 0;
}

代码如下:

#include<bits/stdc++.h>
using namespace std;
char s[100],t[100],w[100];
int a,b,k=0;
int main()
{
        cin>>s;
        cin>>t;
        a=strlen(s);
        b=strlen(t);
        for(int i=0;i<=a;i++)
        {
            int j=0;
            while(j<b)
            {
                    if(s[i]==t[j]) 
                    {
                    w[k]=t[j];
                    k++;
                }
                j++;
            }
        }
        for(int i=0;i<=k;i++)
            cout<<w[i];
        return 0;
}