Ребят, есть вот код, он мне все буквы считает, а надо ток строчные, что делать, как исправить?
123456789101112131415161718192021222324252627282930
class Program
{
static void Main()
{
string inputString = "ййЙЙqqqQQQ";
int count = CountLowercaseLetters(inputString);
Console.WriteLine("Общее количество строчных латинских и русских букв: " + count);
}
static int CountLowercaseLetters(string inputString)
{
char[] Latin = "abcdefghijklmnopqrstuvwxyz".ToCharArray();
char[] Russian = "абвгдежзийклмнопрстуфхцчшщьыъэюя".ToCharArray();
int count = 0;
foreach (char c in inputString)
{
if (Array.IndexOf(Latin, char.ToLower(c)) != -1 ||
Array.IndexOf(Russian, char.ToLower(c)) != -1)
{
count++;
}
}
return count;
}
}
По дате
По рейтингу
12345678910111213
using System;
using System.Linq;
class Program
{
static void Main()
{
string inputString = "ййЙЙqqqQQQ";
int count = inputString.Count(char.IsLower);
Console.WriteLine("Общее количество строчных латинских и русских букв: " + count);
}
}
возможно дело в том, что у тебя используется функция ToLower
Чтобы исправить код и считать только строчные буквы, нужно изменить условие в цикле. Вместо того, чтобы сравнивать индексы в массивах Latin и Russian, можно сравнивать символы напрямую с помощью методов char.IsLower() и char.IsLetter():
static int CountLowercaseLetters(string inputString)
{
int count = 0;
foreach (char c in inputString)
{
if (char.IsLower(c) && char.IsLetter(c))
{
count++;
}
}
return count;
}
Теперь код будет считать только строчные буквы латинского и русского алфавита.