У меня есть программа, которая заменяет части массива char содержимым другого, однако она также заменяет части массива, которые не следует заменять.
Код ниже является кодом, отвечающим за замену символов в массиве.
Однако по одному символу за раз, когда только часть того, что предполагается заменить, находится в массиве, подобном xy
из xyz
, он должен оставить это в покое и искать следующее вхождение xyz
, которое он затем заменит.
i =0;
while(i < 30){
j=0;
while(j < k){
if(carray[i] == aarray[j])
carray[i] = barray[j];
j++;
}
i++;
}
Моя проблема в том, что если присутствует только часть того, что программа должна искать и заменять, она заменяет ее, даже если это не полное слово, которое подразумевалось.
например:
если я хочу заменить xyz
на abc
в массиве xyzdefxyzghixy
тогда массивы имеют следующее содержимое:
aarray[] = {xyz}
barray[] = {abc}
carray[] = {xyzdefxyzghixy}
Я получаю abcdefabcghiab
в качестве вывода, и последние два символа ab
должны фактически остаться xy
т.е. * * тысяча тридцать три
Я ожидаю, что результат будет abcdefabcghixy
что я тут не так сделал.
Примечание: обратите внимание, что я хочу использовать только stdio.h
Вся помощь очень ценится.
Заранее спасибо.