Code duyệt string bị lỗi [Error] name lookup of ‘i’ changed for ISO ‘for’ scoping

Em mới học string, moi người cho em hỏi đoạn code này em sai ở đâu mà khi đến if a[i] == ‘(’ thì lại lỗi ạ, em cảm ơn
[Error] name lookup of ‘i’ changed for ISO ‘for’ scoping [-fpermissive] đây là khi biên dịch ạ

	string a;
	cout <<"Nhap chuoi can kiem tra: ";
	int temp = a.length();
	for(int i = 0; i<temp-1; i++);{
		if(a[i] == '('){
			cout<<"abc";
		}
		else{
			cout<<"bca";	
		}
	} 

Lỗi khi biên dịch hay trong khi thực thi? Thông báo lỗi?

À, chuỗi có khai báo mà chưa gán/nhập kìa.

3 Likes

e copy thiếu ạ, có nhập r khi biên dịch thì gặp lỗi này ạ [Error] name lookup of ‘i’ changed for ISO ‘for’ scoping [-fpermissive]

Dấu chấm phẩy (;) sau for kìa.

4 Likes

Đươc r, em cảm ơn hicc, cho e hỏi thêm chút, khi mình lấy ra phần tử a[i] thì a[i] chuyển thành kiểu char ạ ?

Đúng thế.
Tham khảo:
http://www.cplusplus.com/reference/string/string/operator[]/
http://www.cplusplus.com/reference/string/string/at/

Cả 2 tương đương nhau.

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