Программа подсчета букв на C#
Написать программу подсчета букв, встречающихся в слове. Т.е. нужно ввести в консоли любое слово, и в итоге программа должна отобразить массив из 2-х элементов: буква, количество.
Алгоритм действий по-моему таков:
1. Ввод слова
2. В цикле разбить слово на буквы и занести их в массив символьного типа.
3. Взять первый элемент из массива и в цикле посчитать сколько раз он встречается в слове, и так со всеми элементами.
Что означает вот эта строка, и как ее предположительно можно написать на C#?
Что означает вот эта строка, и как ее предположительно можно написать на C#?
в этой строке создаем массив счетчик размером size_counter и обнуляем его. В C# это выглядит так:
обнулять массив в C# не надо, т.к. в C# дефолтное значение числовых массивов равно нулю(в С нету дефолтных значений, поэтому там надо).
[QUOTE=Help]The default value of numeric array elements is zero[/QUOTE]
это в корне неправильно, я такого не писала. Во первых str - это строка, а не символ, потом символ надо конвертировать в подходящий индекс: от 0 до 255 включительно. Вот код, должен работать, только не забудь результат напечатать:
str = Console.ReadLine();
int[] counter = new int[256];
for(int i = 0; i < str.Length; ++i)
counter[Char.ToLower(str)-'a']++;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
Console.WriteLine("Введите слово");
string str;
str = Console.ReadLine();
int[] counter = new int[256];
for (int i = 0; i < str.Length; ++i)
counter[Char.ToLower(str) - 'a']++;
Console.Write("Результат:");
Console.WriteLine(str.Length);
}
}
}
{
string str;
int size_counter = 256;//for english alphabet only
Int32[] counter = new Int32[size_counter];
Console.Write("Enter a string: ");
str = Console.ReadLine();
for (Int16 i = 0; i < str.Length; ++i)
//если в строке есть знаки пуктуации, то делаем проверку, что символ буква
if(Char.IsLetter(str))
++counter[Char.ToLower(str) - 'a'];
for (int i = 0; i < counter.Length; ++i)
if (counter > 0)
Console.WriteLine("{0} = {1}", ((char)('A' + i)), counter);
}
это не операторы, это типы данных.
Int16 - short
Int32 - int
можешь написать инт вместо Инт32, будет тоже самое. В полезных ссылках, есть ссылка на интернет-университет (самообразование). Почитай лекцию о типах данных, там на русском языке.
{
string str;
int size_counter = 256;//for english alphabet only
Int32[] counter = new Int32[size_counter];
Console.Write("Enter a string: ");
str = Console.ReadLine();
for (Int16 i = 0; i < str.Length; ++i)
//если в строке есть знаки пуктуации, то делаем проверку, что символ буква
if(Char.IsLetter(str))
++counter[Char.ToLower(str) - 'a'];
for (int i = 0; i < counter.Length; ++i)
if (counter > 0)
Console.WriteLine("{0} = {1}", ((char)('A' + i)), counter);
}
Здравствуйте, подскажите, что нужно в этой программе корректировать, чтобы количество букв считалось в тексте, который находится в текстовом файле.... Я файл могу открыть, в консоле могу видеть, что там написано, но как буквы сосчитать??? Подскажите....
вот и покажи что выходит, а то телепаты в отпуске...
если задание аналогичное, считывай построчно с файла строки в цикле, сохраняй во переменной стринг, а дальше все тоже самое ....
а если надо узнать количество символов в файле, то в Си шарп вообще стандартная функция для этого дела имеется.
если задание аналогичное, считывай построчно с файла строки в цикле, сохраняй во переменной стринг, а дальше все тоже самое ....
а если надо узнать количество символов в файле, то в Си шарп вообще стандартная функция для этого дела имеется.
Все, спасибо, это сообщение мне помогло - я не догадался переменную дать - в общем, спасибо!