Kiểm tra xâu A có phải là xâu con của xâu B hay không

Đầu vào từ bàn phím gồm 2dòng. Dòng đầu tiên chứa xâu A, dòng thứ hai chứa xâu B.(Độ dài 2 xâu không vượt quá 100).
In ra màn hình ‘‘YES" nếu A là xâu con của B, ngược lại, in ra ‘‘NO"
mn sửa giúp e với ạ.

#include<bits/stdc++.h>
using namespace std;
int main() {
    string s,s1;
    getline(cin,s);
    getline(cin,s1);
    int check=s.find(s1);
    if (check>-1) {
        cout<<"YES";
    } else {
        cout<<"NO";
    }
}
#include<stdio.h>
#include<string.h>
main()
{ char s1[20],s2[20];
char *p;
scanf("%s",&s1);
scanf("%s",&s2);
p=strstr(s2,s1);
if (p!=NULL) printf("YES");
else printf("NO");
}
#include "stdio.h"
#include "stdlib.h"
bool is_a_contain_b(int A[], int n, int B[], int m);
int main( ){
    int A[100];
    int B[100];
    int n = sizeof(A)/sizeof(int);
    int m = sizeof(B)/sizeof(int);
    int k = 5;
    if(is_a_contain_b(A, n, B, m))
        printf("YES");
    else
        printf("NO");
}
bool is_a_contain_b(int A[], int n, int B[], int m){
    int i, j, k;
    bool res = false;
    if(n < m)
        return false;
    for(i = 0; i < n; i++){
        if(B[0] == A[i] && n - i >= m){
            k = i + 1;
            res = true;
            for(j = 1; j < m; j++, k++){
                if(B[j] != A[k]){
                    res = false;
                    break; 
}}       if(res)
                break;
}}
    return res;
}
#include<stdio.h>
#include<string.h>
int main(){
	char a[100],m[100];
	fflush(stdin);
	int n=strlen(a)-1;
	int c=0,b=n;
	while(a[c]==' ')	c++;
	while(a[b]==' ') 	b--;
	for(int i=c;i<=b;i++){
		while(a[i]==' '&&a[i+1]==' '){
			for(int j=i;j<=b;j++){
				a[j]=a[j+1];
			}b--;
		}}
	for(int i=c;i<=b;i++)
	printf("%c",a[i]);
	for(int i=c;i<=b;i++){
		if(a[i]!=' '){
			int t=0;
			for(int k=c;k<i;k++)
				if(a[i]==a[k])
				t++;
			if(t==0)
			printf("%c ",a[i]);
}}
	for(int i=c;i<=b;i++){
		int t=0;
		int dem=0;
		if(a[i]!=' '){
				for(int k=0;k<=i-1;k++)
				if(a[i]==a[k])
				t++;
				if(t==0){ 
					for(int j=0;j<=n;j++){
						if(a[i]==a[j])
						dem++;
					}}}}
	fflush(stdin);
	char *k;
	k=strstr(a,m);
	if(k!=NULL)
				printf("YES");
	else
				printf("NO");
	return 0;
}

bạn tìm hiểu hàm find trong C++ xem

4 Likes

4 đoạn mã của bạn đều sai y như nhau à?

  1. Đoạn 1: Bạn làm ngược.
  2. Đoạn 2: Bạn làm ngược luôn.
  3. Đoạn 3: Không có phần nhập dữ liệu!?
  4. Đoạn 4: Không có phần nhập dữ liệu và viết hàng tá thứ, sau đó lại làm y như đoạn 2.
2 Likes
#include<bits/stdc++.h>
using namespace std;
bool bangnhau(vector<char>b,string k)
{
    int l1=b.size();
    int l2=k.size();
    if(l1!=l2){return 0;}
    for(int i=0;i<l1;i++)
    {
        if(b[i]!=k[i])return 0;
    }
    return 1;
}
int main()
{
    string a,b;
    cin>>a>>b;
    int l1=a.size();
    int l2=b.size();
    if(l1>l2)
    {
        cout<<"NO";
    }
    else
    {
        for(int k=0; k<=l2-l1; k++)
        {
          vector<char> kk;
            for(int i=0+k; i<l1+k; i++)
            {
               kk.push_back(b[i]);
            }
            if(bangnhau(kk,a))
            {
                cout<<"YES";
                return 0;
            }
        }
    }
    cout<<"NO";
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?