Cho một xâu , nhập vào 1 từ và xóa từ đó trong xâu đã cho
Code:
Xây dựng hàm
#include <bits/stdc++.h>
using namespace std;
void Delete(char *s = new char[100],char *t = new char[100])
{
int a[100000],x=0;
for(int i = 0 ; i < strlen(t) ; i++)
a[x++] =(int)*(t+i);
int b[100000],y=0,f=0,c[100000],z=0;
for(int i = 0 ; i < strlen(s) ; i++)
{
if(*(s+i) != ' ')
b[y++] = (int)*(s+i);
if(*(s+i) == ' ')
{
b[y++] = (int)*(s+i);
int k=0;
for(int i = 0 ; i < x ; i++)
{
if(a[i] == b[i])
k++;
}
if(k < x)
{
for(int i = 0 ; i < y ; i++)
c[z++] = b[i];
y = 0;
}
if(k == x)
y = 0;
}
f++;
}
if(f == strlen(s))
{
int k=0;
for(int i = 0 ; i < x ; i++)
{
if(a[i] == b[i])
k++;
}
if(k < x)
{
for(int i = 0 ; i < y ; i++)
c[z++] = b[i];
y = 0;
}
if(k == x)
y = 0;
}
for(int i = 0 ; i < z ; i++)
cout<<(char)c[i];
}
int main()
{
char *s = new char[100],*t = new char[100];
gets(s);
fflush(stdin);
gets(t);
Delete(s,t);
return 0;
}
Viết trên hàm main
#include <bits/stdc++.h>
#include <string.h>
using namespace std;
int main()
{
char *s = new char[100],*t = new char[100];
gets(s);
fflush(stdin);
gets(t);
int a[100000],x=0;
for(int i = 0 ; i < strlen(t) ; i++)
a[x++] =(int)*(t+i);
int b[100000],y=0,f=0,c[100000],z=0;
for(int i = 0 ; i < strlen(s) ; i++)
{
if(*(s+i) != ' ')
b[y++] = (int)*(s+i);
if(*(s+i) == ' ')
{
b[y++] = (int)*(s+i);
int k=0;
for(int i = 0 ; i < x ; i++)
{
if(a[i] == b[i])
k++;
}
if(k < x)
{
for(int i = 0 ; i < y ; i++)
c[z++] = b[i];
y = 0;
}
if(k == x)
y = 0;
}
f++;
}
if(f == strlen(s))
{
int k=0;
for(int i = 0 ; i < x ; i++)
{
if(a[i] == b[i])
k++;
}
if(k < x)
{
for(int i = 0 ; i < y ; i++)
c[z++] = b[i];
y = 0;
}
if(k == x)
y = 0;
}
for(int i = 0 ; i < z ; i++)
cout<<(char)c[i];
return 0;
}