У меня есть функция counter(string s1, string s2)
, которая в качестве параметров принимает две строки (оба размера 4). s1
генерируется случайным образом, а s2
вводит пользователя.C++ Проверка дубликатов в строке
int counter(string s1, string s2){
int count = 0;
int i, j;
if(i != j){
for(i = 0; i < 4; i++){
for(j = 0; j < 4; j++){
if(s2[i] != s2[j] && s2[j] == s1[i]){
count += 1;
}
}
}
}
return count;
}
Что делает эта функция сравнить каждый элемент s2
к s1
«с. Если элемент s2
равен элементу s1
, при условии, что они не имеют того же индекса или позиции, count
увеличивается на 1. Функция, однако, сталкивается с проблемами, когда s2
содержит дубликаты. Например, если s1 = 1234
и s2 = 4445
, выход должен быть 1
, но моя программа выдает 3
. Как я могу обнаружить дубликаты в строке?
Забыл упомянуть об этом, но s1 (случайно сгенерированная строка) имеет различные символы.
Каково предполагаемое поведение? Можете ли вы привести несколько примеров ввода и того, что вы ожидаете от вывода? – bdonlan
error: 's1' не был объявлен в этой области –
'if (i! = J)' всегда false –