Nhập xâu và xuất đảo ngược các từ

bài này e có thử làm theo kiểu mảng nhưng theo bài lại không không biết cách nhập xâu mà không cho trước số lượng phần tử (các từ). Có cách nào để làm không ạ!!!

Bạn không nói rõ ngôn ngữ bạn dùng là gì.

4 Likes

à bài này mình dùng c++

Tôi k sử dụng c++,
không biết thuật toán sau có giúp ích được gì cho bạn không.
B1: Nhập xâu
B2: Gán vào biến str
B3: Chuyển str thành mảng bằng lệnh str.split(" ");
B4: in ra.

code java

tôi sd java

public static void main(String[] agrs)
    {
    	String str = "day la mot chuoi"; // B1 + B2
		String []a = str.split(" "); //B3
        //B4
		for (int i = a.length - 1; i>=0; i--) {
			System.out.println (a[i]); 
		}
    }

KQ:
chuoi
mot
la
day

=> Bạn có thể thử cách sử dụng lệnh split của c++ (bạn tự check)
http://www.cplusplus.com/forum/beginner/87238/

1 Like

Bạn đảo ngược hoàn toàn chuỗi ban đầu và quan sát :smiley:

3 Likes

bài này e tìm ra 1 cách giải dùng vòng lặp. bác nào hứng thú thì xem nhé :grin:

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string s;
	string a[100];
	getline(cin, s);
	int i=0, j=0, b=0;
	do
	{
		if(s[i]!=' '){
			a[j]=a[j]+s[i];
		}
		if(s[i]==' ')
		{
			j++;
			b++;
		}
		i++;
	}
	while(i<=s.length()-1);
	for(int i=b; i>=0; i--)
	{
		cout << a[i] << " ";
	}
}
3 Likes

đúng rồi đó bạn, nhưng nhớ dùng tên biến kiểu gợi nghĩa
tránh dùng bồi, đầm, già, át,… vì khi có bugs rất khó hiểu =)))

3 Likes

Tốt đấy bạn!

Hết 100 khoảng trắng thì toạch à :smiley:

có “abc de fghij”
đảo lại “jihgf ed cba”
giờ ta làm gì nữa?

3 Likes

:sweat_smile: tại bài tập của e ko yêu cầu nhiều. nhưng chắc khai báo kiểu vector thì tốt hơn ạ :thinking:
à với cả nó đảo thành “fghij de abc” cơ ạ.

1 Like

Cái này string phải rồi. Giờ đảo lại từng từ thôi.

Thật ra nếu đảo ngược từ ở bước 2 rồi mới đảo chuỗi thì lại chỉ cần kiểm tra con trỏ.


Nhiều ng` đọc đề sẽ làm ngay 1 câu đại loại như

# pseudo
s.split(/\s+/).reverse.join(" ")

tuy nhiên output sẽ ko đúng :smiley: và nó lâu.

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