Поскольку к символу можно обращаться по индексу, для перебора всех символов можно использовать цикл по переменной, которая будет принимать возможные значения индексов. Например, программа, которая выводит на экран все коды символов строки s будет выглядеть так:
for (int i = 0; i < s.Length; i++)
{
Console.WriteLine(s[i]);
Console.WriteLine(Convert.ToInt32(s[i]));
}
Пояснения к программе:
1) s.Length находит длину строки. Индекс первого символа равен 0, а индекс последнего s.Length-1. Переменная цикла i как раз и будет принимать последовательно значения от 0 до s.Length-1;
2) в каждой строке сначала будет выводиться сам символ, а затем его код, который можно получить через метод Convert.ToInt32();
Такой же перебор можно записать короче:
foreach (char c in s)
{
Console.WriteLine(c);
Console.WriteLine(Convert.ToInt32(c));
}
В данном фрагменте заголовок цикла перебирает все символы s, помещая их по очереди в переменную c.
Особенность C# при работе со строками заключается в том, что строки - это неизменяемые объекты. Другими словами, мы не можем изменять отдельные символы строки.
Например, не сработает следующий оператор:
s[5]=" ";