Lỗi jump to case label

#include<iostream>
#include<string>
#include"HamBt1.cpp"

using namespace std;
 void Timch(char st[50]){
	char ch;
	cout << "Nhap ki tu ch: ";
	cin >> ch;
	int dem = 0;
	for ( int i=0 ; i<strlen(st) ; i++){
		if (ch == st[i]){
			dem++;
		}
	}
	if ( dem == 0)
		cout << "Ky tu " << ch << " khong xuat hien trong xau da nhap.";
	else {
		cout << "Ky tu " << ch << " xuat hien " << dem << " lan trong xau, tai cac vi tri: " << endl;
		for ( int i=0 ; i< strlen(st) ; i++){
			if (ch == st[i]){
				cout << i+1 << "\t";
			}
		}
	}
}


int main(){
	char st[50];
	int luachon;
	system("cls");
	cout << "		CHUONG TRINH THAO TAC VOI XAU" << endl;
	cout << "Chon cac truong hop sau: " << endl;
	cout << "1.Nhap vao mot xau st va mot ky tu ch, dem so lan va vi tri xuat hien cua ch trong st." << endl;
	cout << "2.Dem xem trong xau st co bao nhieu loai ki tu moi loai xuat hien bao nhieu lan." << endl;
	cout << "3.Xet xem trong xau co k ki tu ke nhau ma nhu nhau hay khong, neu co thi xoa bot chi de 1 ki tu." << endl;
	cout << "4.*Kiem tra trong xau co ki tu 1 hay khong." << endl;
	cout << "" << endl;
	cout << "Nhap lua chon cua ban: ";
	cin >> luachon;
	
	switch (luachon)
	{
		case 1:
			fflush (stdin);
			cout << "Nhap xau st: ";
			gets (st);
			Timch(st);
			break;
			
		case 3:
			string st;
			int i,j;
			fflush (stdin);
			cout << "Nhap xau st: ";
			getline(cin,st);
			for( i=0 ; i<st.size(); i++)
		    {
		        j=i+1;
		        do{
		        	if(st[i]==st[j]) 
						st.erase(j,1);
		            else j++;
		        } 
				while(j<=st.length());
		    }
		    cout << "Xau sau khi xoa: ";
			cout << st;
			break;
							
		
		case 4:
		{	
			cout << "abcd";
			break;
		}		
	}
}

Tại sao cái case 4 luôn bị lỗi bất kể bên trong có code gì ạ, mình không khai báo biến trong case và cũng thử cho vào trong { } r nhưng vẫn gặp lỗi đấy. Có thể giải đáp giúp mình đc k ạ.

viết thêm default vào trong switch. Đặt debug chỗ switch rồi xem nó nhảy xuống case nào.

1 Like

Lỗi không nằm ở case 4 nha bạn. Cho tui hỏi bạn khai báo char st[50] rồi ở case 3 lại khai báo string st là sao vậy.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?