

Here's my code
Code: Select all
Hopeless with this prob
Regard, Andre
Moderator: Board moderators
Code: Select all
Hopeless with this prob
Code: Select all
char in[300];
char text[300], *p1, *p2, *p3;
char rules[11][2][100];
Code: Select all
char in[400];
char text[400], *p1, *p2, *p3;
char rules[11][2][400];
Code: Select all
#include<iostream>
#include<string>
#include<stdio.h>
#define MAX_F_R 1000
#define MAX_A 3600
using namespace std;
char find[MAX_F_R][MAX_F_R];
char replace[MAX_F_R][MAX_F_R];
char array[MAX_A];
int main()
{
int no_of_replace;
//freopen("10115.in","r",stdin);
while(1)
{
scanf("%d",&no_of_replace);
if(no_of_replace==0)
break;
memset(find,0,sizeof(find));
memset(replace,0,sizeof(replace));
memset(array,0,sizeof(array));
getchar();
int i=0;
int num=no_of_replace;
while(no_of_replace--)
{
gets(find[i]);
gets(replace[i]);
i++;
}
gets(array);
string s=array;
i=0;
while(num--)
{
string f=find[i];
string r=replace[i];
int pos=s.find(f);
while(pos!=string::npos)
{
s.replace(pos,f.length(),r);
pos=s.find(f,pos+1);
}
i++;
}
cout<<s<<endl;
}
return 0;
}
Code: Select all
1
ban
b
banananananana boat
0
Code: Select all
ba boat
Code: Select all
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 4000
void main(){
int no_line, i, j, k, l, len, len1, len2, tmp;
char rule[100][SIZE], repla_by[100][SIZE], text[SIZE], temp[SIZE], ch[SIZE];
//freopen("G:\\input.txt","r",stdin);
while (1 == scanf("%d",&no_line) && no_line){
gets(rule[0]);
for (i = 0; i < no_line; i++){
gets(rule[i]);
gets(repla_by[i]);
}
gets(text);
for ( i = 0; i < no_line; i++){
len = strlen(rule[i]);
len1 = strlen(text);
len2 = strlen(repla_by[i]);
j = 0;
while (len < (len1-j)){
int i1 = 0;
for ( k = j; k < (j+len); k++)
ch[i1++] = text[k];
ch[i1] = '\0';
if (!strcmp(ch,rule[i])){
//temp = (char*)malloc(260*sizeof(char));
for ( k = 0; k < j; k++)
temp[k] = text[k];
if (repla_by[i][0] == '\0')
l = j + len;
else{
tmp = j;
for (l = 0; l < len2; l++)
temp[j++] = repla_by[i][l];
if (len < len2)
l = tmp + len;
else if(len > len2)
l = j + len - len2;
else
l = j;
}
for ( ; l <= len1; l++)
temp[j++] = text[l];
strcpy(text,temp);
j = 0;
len1 = strlen(text);
}
else
j++;
}
}
puts(text);
}
}
Code: Select all
5
a
n
b
k
nk
m
mmmm
i
kmkkknmkknn
am
ababababbabbbbaabbbaa
4
p
a
q
j
x
n
aaa
a
qpppppppppppppppppppppppx
0
Code: Select all
i am
jan
Code: Select all
#include <iostream>
#include <stdio.h>
#include <string.h>
typedef char String[400];
using namespace std;
typedef struct
{
int nCount;
String str[11];
String rule[11];
String st;
} RulePhase;
void editStrings(String st,String targ,String rule)
{
int i = 0,j,k,l,nCount;
String ss,newString;
if (strcmp(st,targ) == 0)
strcpy(newString,rule);
else
{
while (i < strlen(st))
{
if (strlen(st)-i < strlen(targ))
break;
nCount = 0;
for (j = i;j < i+strlen(targ);j++)
{
ss[nCount] = st[j];
nCount++;
if (nCount == strlen(st))
break;
}
ss[nCount] = '\0';
if (strcmp(ss,targ) == 0)
{
k = 0;
while (k < i)
{
newString[k] = st[k];
k++;
}
l = 0;
while (l < strlen(rule))
{
newString[k] = rule[l];
k++;
l++;
}
for (l = j;l < strlen(st);l++)
{
newString[k] = st[l];
k++;
}
newString[k] = '\0';
strcpy(st,newString);
i = 0;
}
else
i++;
}
}
strcpy(st,newString);
}
int main()
{
int nNum,i,j,nIn = 0;
char cDump;
String str[11];
String rule[11];
String st;
// freopen("input.txt","rt",stdin);
// freopen("output.txt","wt",stdout);
do
{
scanf("%d%c",&nNum,&cDump);
if (nNum > 0)
{
for (i = 0;i < nNum;i++)
{
gets(str[i]);
gets(rule[i]);
}
gets(st);
for (i = 0;i < nNum;i++)
editStrings(st,str[i],rule[i]);
printf("%s\n",st);
nIn++;
}
} while (nNum > 0);
}
Code: Select all
#include<stdio.h>
#include<string.h>
char m[11][81],temp[256];
int len[11],n;
int cmp(int a,int l)
{
int c;
bool eq=1;
if(len[l]==a)
{
for(c=0;c<len[l];c++){if(m[l][c]!=temp[c]){eq=0;break;}}
if(eq)return 1;
}
return 0;
}
int main()
{
char st[256],r[11][81];
int i,j,len_r[11],len_st,b,k,l;
int eq,t_eq;
while(scanf("%d",&n)==1&&n!=0)
{
for(i=0;i<n;i++)
{
while(1){gets(m[i]);if(m[i][0]!=0)break;}
while(1){gets(r[i]);if(r[i][0]!=0)break;}
len[i]=strlen(m[i]);
len_r[i]=strlen(r[i]);
}
while(1){gets(st);if(st[0]!=0)break;}
len_st = strlen(st);
for(l=0;l<n;l++)
{
while(1)
{
eq=0;t_eq=0;
for(i=0;i<len_st;i++)
{
k=0;
for(j=i;j<len_st;j++)
{
temp[k++]=st[j];
eq = cmp(k,l);
if(eq)
{
b=0;
strcpy(temp,st);
for(k=i;k<len_r[l]+i;k++)st[k]=r[l][b++];
for(b=j+1;b<len_st;b++)st[k++]=temp[b];
len_st = k;i=0;j=0;t_eq=1;k=0;
}
}
}
if(!t_eq)break;
}
}
for(i=0;i<len_st;i++)printf("%c",st[i]);
puts("");
}
return 0;
}
INPUT:jan
Code: Select all
5
a
n
b
k
nk
m
mmmm
i
kmkkknmkknn
am
ababababbabbbbaabbbaa
4
p
a
q
j
x
n
aaa
a
qpppppppppppppppppppppppx
0
Code: Select all
i am
jan
Code: Select all
iam
jan
Code: Select all
5
a
n
b
k
nk
m
mmmm
i
kmkkknmkknn
am
ababababbabbbbaabbbaa
4
p
a
q
j
x
n
aaa
a
qpppppppppppppppppppppppx
0
Code: Select all
iam
jan
here r the steps.can any one explain this output of
Code: Select all
jan
1)replace all p with a
qpppppppppppppppppppppppx -> qaaaaaaaaaaaaaaaaaaaaaaax
2)replace aaa with a each time
qaaaaaaaaaaaaaaaaaaaaaaax -> qax
3)replace q with j
qax -> jax
4)replace x with n -> jan
ori am
from my point i think it should be "iam"iam
Code: Select all
iam
jan