Определить повторение символа в строке - C#
Формулировка задачи:
Определить и вывести на экран номера позиций и количество повторений запрашиваемого символа в строке, введенной с клавиатуры
есть код на паскале
Я попыталась реализовать метод через флаг уникальности, чтобы счетчик был на неуникальные символы, но не могу понять общий принцип, что должно происходить и как вывести и определить номера позиций
var
s: string;
c: char;
i,k: byte;
begin
write('Введите строку: '); readln(s);
write('Введите символ: '); readln(c);
k:=0;
write('Номера позиций: ');
for i:= 1 to length(s) do
if s[i]=c then begin
write(i, ' ');
inc(k);
end;
writeln;
writeln('Количество повторений заданного символа: ', k);
end.static void fifth()
{
Console.WriteLine("Введите строку: ");
string a = //не понимаю, нужно ли что-то со строкой сделать или нет
int s = 0;
for (int i = 0; i < a.Length; i++)
{
bool isUnique = false; //флаг уникальности
for (int j = 0; j < i; j++)
{
if (a[i] == a[j]) isUnique = true; //если число уже было, то флаг = true
}
if (isUnique) s++; //если значение уникальное увеличиваем счетчик
}
Console.WriteLine("Повторений элемента " + s + "");Решение задачи: «Определить повторение символа в строке»
textual
Листинг программы
static void fifth()
{
int k = 0;
Console.Write("Введите строку: ");
string a = Console.ReadLine();
Console.Write("Введите символ: ");
char c = Console.ReadKey().KeyChar;
Console.WriteLine();
for (int i = 0; i < a.Length; i++)
{
if (a[i] == c)
{
Console.Write(i + " ");
k++;
}
}
Console.WriteLine("Количество повторений заданного символа: " + k);
}