1
Tìm kí tự trong xâu trùng với kí tự đã cho trong C++?
0
Cộng đồng đã đăng:

Cho một xâu kí tự và một kí tự (không phân biệt thường và hoa).

a. Tìm trong xâu đã cho có bao nhiêu từ có kí tự đầu tiên trùng với kí tự đã cho.

b. Đưa ra tất cả các từ có độ dài lớn nhất.

VD:

XAUVAKITU.INPUT: toi lo lang viec thi cu lam

Chữ cái: l

a: lo lang lam

b: lang

thêm bình luận...
2
Cộng đồng đã đăng:

Bạn có thể tham khảo bài code bên dưới.

#include "pch.h"
#include <iostream>
#include <string>
using namespace std;

#pragma warning(disable:4996)


int main()
{
    string str; // Khoi tao xau
    char ch; // Khoi tao ky tu
    string kq; // Khoi tao xau ket qua
    string tuDaiNhat = ""; // Khoi tao tu dai nhat 

    // Nhap vao xau ky tu
    cout << "Nhap vao xau ky tu: ";
    getline(cin, str);

    // Nhap vao ky tu
    cout << "Nhap vao ky tu can tim kiem: ";
    cin >> ch;

    // Xy ly chinh
    for (int i = 0; i < str.length(); i++) {
        if (str[i] == ch) {
            string tmp;
            for (int j = i; j < str.length(); j++) {
                tmp.push_back(str[j]);
                if (str[j] == ' ' || str[j] == '\n') {
                    break;
                }
            }

            if (tmp.length() > tuDaiNhat.length()) {
                tuDaiNhat = tmp;
            }

            kq += tmp;
        }
    }

    // Xuat ra man hinh ket qua
    cout << "Ket qua cau (a) la: " << kq << endl;
    cout << "Ket qua cau (b) la: " << tuDaiNhat << endl;

    return 0;
}

Ý tưởng cơ bản là duyệt chuỗi, so sánh từng ký tự của chuỗi với ký tự đã cho, nếu trùng thì lưu lại từ chứa ký tự đó, đồng thời ở mỗi lần tìm được một từ, so sánh độ dài của nó với từ đã tìm được trước đó, nếu độ dài lớn hơn, cập nhật lại, không thì bỏ qua.

em cảm ơn ạ :3

kngoc46 01.07.2020
1

Ở câu b mình vẫn chưa hiểu ý của câu hỏi là gì?

  1. Có thể là tìm tất cả các từ có độ dài lớn nhất dựa vào kết quả ở câu a.
  2. Hoặc là tìm tất cả các từ có độ dài lớn nhất dựa vào xâu ban đầu.

Ở đoạn code trên mình làm theo trường hợp 1 nhé, tức là từ kết quả ở câu a, mình tìm từ dài nhất, không biết có đúng ý bạn không? :D

Cộng đồng 01.07.2020

là tìm các từ có độ dài lớn nhất dựa vào kết quả câu a đấy ạ

kngoc46 01.07.2020
thêm bình luận...

Câu trả lời của bạn

Chào mừng bạn đến với cộng đồng chia sẻ tri thức BanhoiTuidap.com, bạn có thể chia sẻ bất kỳ sự hiểu biết, nghiên cứu hoặc kinh nghiệm của mình về câu hỏi này với một số lưu ý:
  • Lịch sự, tế nhị.
  • Hạn chế ghi tắt, câu trả lời của bạn chỉ nên tập trung vào câu hỏi ở trên.
Câu trả lời của bạn sẽ được đăng ở chế độ cộng đồng, cho nên bạn sẽ không thể chỉnh sửa sau khi đăng, có thể đăng ký thành viên trên BanhoiTuidap.com khi bạn muốn theo dõi câu hỏi này hoặc chủ đề liên quan.
Bạn đang thắc mắc? Ghi câu hỏi của bạn và đăng ở chế độ cộng đồng (?)