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.