Mình có một chương trình chính, trong chương trình này sẽ có nhiều chương trình còn dạng menu như sau
cout<<"1.Tim X = {x thuoc S1 hoac x thuoc S2}"<<endl;
        cout<<"2.Tim X = {x thuoc S1 va x thuoc S2}"<<endl;
        cout<<"3.Tim X = {x thuoc S1 va x khong thuoc S2}"<<endl;
        cout<<"4.Tim tap ky tu va so lan xuat hien moi ky tu trong ca S1, S2 (Không ke ky tu trong)"<<endl;
        cout<<"5.Tim tap ky tu va so lan xuat hien moi ky tu thuoc ca S1, S2 (Không ke ky tu trong)"<<endl;
        cout<<"6.Tim tap ky tu va so lan xuat hien moi ky tu thuoc S1 nhung khong thuoc S2 (Không ke ky tu trong)"<<endl;
        cout<<"7.ma hoa x bang ky thuat chan le"<<endl;
        cout<<"8.giai ma x bang ky thuat chan le"<<endl;
        cout<<"9.tim tap tu va so lan xuat hien moi tu trong s1 hoac s2 "<<endl;
        cout<<"10.tim tap tu va so lan xuat hien moi tu trong s1 va s2"<<endl;
        cout<<"11.tim tap tu va so lan xuat hien moi tu trong s1 nhung khong xh trong s2"<<endl;
Tuy nhiên menu 2 có lỗi, ở bài 2 là tìm các kí tự thuộc cả 2 xâu. Hàm search của mình là kiểm tra xem kí tự s có thuộc xâu a hay không rồi return 0 hoặc 1.
Đây là toàn bộ code
#include <iostream>
#include <string>
#include <windows.h>
#include <stdio.h>
using namespace std;
typedef struct
{
    char kitu;
    int solan;
} word;
int search(char s,char *a)
{
    for(int i=0; i<=strlen(a)-1; i++)
    {
        if(s==a[i]) return 1;
    }
    return 0;
}
int main()
{
    int dung=1,bai;
    do
    {
        system("cls");
        cout<<"1.Tim X = {x thuoc S1 hoac x thuoc S2}"<<endl;
        cout<<"2.Tim X = {x thuoc S1 va x thuoc S2}"<<endl;
        cout<<"3.Tim X = {x thuoc S1 va x khong thuoc S2}"<<endl;
        cout<<"4.Tim tap ky tu va so lan xuat hien moi ky tu trong ca S1, S2 (Không ke ky tu trong)"<<endl;
        cout<<"5.Tim tap ky tu va so lan xuat hien moi ky tu thuoc ca S1, S2 (Không ke ky tu trong)"<<endl;
        cout<<"6.Tim tap ky tu va so lan xuat hien moi ky tu thuoc S1 nhung khong thuoc S2 (Không ke ky tu trong)"<<endl;
        cout<<"7.ma hoa x bang ky thuat chan le"<<endl;
        cout<<"8.giai ma x bang ky thuat chan le"<<endl;
        cout<<"9.tim tap tu va so lan xuat hien moi tu trong s1 hoac s2 "<<endl;
        cout<<"10.tim tap tu va so lan xuat hien moi tu trong s1 va s2"<<endl;
        cout<<"11.tim tap tu va so lan xuat hien moi tu trong s1 nhung khong xh trong s2"<<endl;
        cout<<"nhap bai: ";
        cin>>bai;
        switch(bai)
        {
        case 1:
        {
            char a[20],b[20],c[20];
            cout<<"nhap xau a: ";
            fflush(stdin);
            cin>>a;
            cout<<"nhap xau b: ";
            fflush(stdin);
            cin>>b;
            strcat(a,b);
            int m=0;
            for(int i=0; i<=strlen(a); i++)
            {
                if(search(a[i],c)==0)
                {
                    c[m]=a[i];
                    m++;
                }
            }
            for(int i=0; i<=m-1; i++) cout<<c[i];
            break;
        }
        case 2:
        {
            char a[20],b[20],c[20];
            cout<<"nhap xau a: ";
            fflush(stdin);
            cin>>a;
            cout<<"nhap xau b: ";
            fflush(stdin);
            cin>>b;
            int m=0;
            for(int i=0; i<=strlen(a)-1; i++)
            {
                if(search(a[i],b) && search(a[i],c)==0)
                {
                    c[m]=a[i];
                    m++;
                }
            }
            for(int i=0; i<=m-1; i++) cout<<c[i];
            break;
        }
        case 3:
        {
            char a[20],b[20],c[20];
            cout<<"nhap xau a: ";
            fflush(stdin);
            cin>>a;
            cout<<"nhap xau b: ";
            fflush(stdin);
            cin>>b;
            int m=0;
            for(int i=0; i<=strlen(a)-1; i++)
            {
                if(search(a[i],b)==0)
                {
                    c[m]=a[i];
                    m++;
                }
            }
            for(int i=0; i<=m-1; i++) cout<<c[i];
            break;
        }
        case 4:
        {
            word x[20];
            char a[20],b[20],c[20];
            cout<<"nhap xau a: ";
            fflush(stdin);
            cin>>a;
            cout<<"nhap xau b: ";
            fflush(stdin);
            cin>>b;
            strcat(a,b);
            int m=0;
            for(int i=0; i<=strlen(a)-1; i++)
            {
                if(search(a[i],c)==0)
                {
                    c[m]=a[i];
                    x[m].kitu=a[i];
                    x[m].solan=1;
                    m++;
                }
                else
                {
                    for(int j=0; j<=m-1; j++)
                    {
                        if(x[j].kitu==a[i]) x[j].solan++;
                    }
                }
            }
            for(int i=0; i<=m-1; i++) cout<<"ki tu "<<x[i].kitu<<" xuat hien "<<x[i].solan<<" lan"<<endl;
            break;
        }
        }
        cout<<endl;
        cout<<"nhap 0 de dung lai,1 de tiep tuc";
        cin>>dung;
    }
    while(dung==1);
}
Vấn đề là nếu để riêng cái case 2 sang 1 bài khác thì ra kết quả còn đưa vào bài thì lại không cho ra kết quả. Mọi người có thể cho mình biết lý do tại sao không?
      
    
    83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?