Вывести фамилию и инициалы - C# (197148)

Узнай цену своей работы

Формулировка задачи:

не могу сделать так чтобы выводило токо фамилию и иницыалы. токо начинаю на с # програмить условие такое ввести свое ФИО, как ряд символов. вычеслить длину ряда и количество букв, что совпадают с другой буквой фамилии. используя класс СтрингБилдер, вставить между между каждой буквой фамили и имени "-". в очестве заменить меленькие голосные большими . -вычислить количество букв а в фамилии -вывести фамилию и очество ------- вот ето не могу зделать
static void Main(string[] args)
        {
            StringBuilder s = new StringBuilder("Иванов Иван Иваныч");
            Console.WriteLine(s);
            int k = 0; int l = 0;
            Console.WriteLine("Довжина рядка = "+s.Length); //визначення довжини рядка
            for (int i = 0; i < s.Length;i++ )              //в циклі рахується кількість символів,
            {                                               //та кількість сиволів "н"
                if (s[i] != ' ') k++;            
                if (s[i] == 'в') l++;
            }
            Console.WriteLine("Кiлькiсть символiв = "+k);
            Console.WriteLine("Кiлькiсть лiтер в = "+l);
            s.Replace(" ","-");                             // заміна пробілів на -
            k = 0;
            for (int i = 0; i < s.Length; i++)
            {
                if (s[i]=='-') k=i+1;                        //визначаю індекс початку По батькові
            }       
            for (int i = k; i < s.Length; i++) //букви Побатькові в верхній реєстр
            {
                if ((s[i] == 'а') || (s[i] == 'о') || (s[i] == 'у') || (s[i] == 'є') || (s[i] == 'и') || (s[i] == 'і') || (s[i] == 'е')) s[i] = Char.ToUpper(s[i]);
            }
            Console.WriteLine("Cтудент групи ПIск-10-1 "+s);//вивожу результат
            k=0;
            for (int i = 0; i < s.Length; i++)// визначаю індекс кінця Прізвища
            {
                if (s[i] == '-') break;
                k++;
            }
            l = 0;
            for (int i = 0; i < k; i++)// Рахую кількіть літер "а" в прізвищі
            {
                if (s[i] == 'а') l++;
            }
            Console.WriteLine("Кiлькiсть лiтер \'а\' в прiзвищi = "+l);
 
            Console.ReadKey();
        }
    }
спс, уже не нада сам сделал. можна удалить тему

Решение задачи: «Вывести фамилию и инициалы»

textual
Листинг программы
 
class Program
    {
        static void Main(string[] args)
        {
          
            Console.Write("Введите ФИО: ");
            String s = Console.ReadLine();
            
            Console.WriteLine("Результат - " + ExctraxtIni(s.ToString()));
            Console.ReadKey();
 
        }
 
        internal static string ExctraxtIni(string Name)
        {
            //Возварщаем пустую строку если строка NULL
            if (String.IsNullOrEmpty(Name))
            {
                Console.WriteLine("Входная строка пуста");
                return String.Empty;
            }         
            
            Console.WriteLine("Изначальная длинна строки = " + Name.Length);
 
            //удаляем начальные и конечные пробелы в строке, а также все точки.
            Name = Name.Trim().Replace(".",String.Empty);
            Console.WriteLine("Длинна строки после удаления пробелов и точек = " + Name.Length);
 
 
            //Возварщаем пустую строку если строка состояла из пробелов и точек
            if (String.IsNullOrEmpty(Name))
            {
                Console.WriteLine("Входная строка пуста");
                return String.Empty;
            }
            
            //Получаем индекс первого пробела
            int index = Name.IndexOf(' ');
 
            //Если Пробел не найден Возвращаем только Фамилию
            if (index < 0)
            {
                Console.WriteLine("Строка имеет только Фамилию - " + Name.Substring(0, 1).ToUpper() + Name.Substring(1).ToLower());
                return Name.Substring(0, 1).ToUpper() + Name.Substring(1).ToLower();
            }
 
            // получаем фамилию
            string lastName = Name.Substring(0, index).Trim();
            lastName = lastName.Substring(0, 1).ToUpper() + lastName.Substring(1).ToLower();
 
            Console.WriteLine("Фамилия - " + lastName);
 
            //Удаляем фамилию из нашей строки
            Name = Name.Substring(index).Trim();
 
            //Получаем индекс первого пробела для имени
            index = Name.IndexOf(' ');
 
            //Если Пробел не найден Возвращаем  Фамилию и первый инициал
            if (index < 0)
            {
                Console.WriteLine("Строка имеет только Фамилию и первый инициал - " + lastName  + " " + Name.Substring(0, 1).ToUpper() + ".");
                return lastName + " " + Name.Substring(0, 1).ToUpper() + ".";
            }
 
            // получаем фамилию
            string firstName = Name.Substring(0, index).Trim();
            firstName = firstName.Substring(0, 1).ToUpper() + firstName.Substring(1).ToLower();
 
            Console.WriteLine("Имя - " + firstName);
 
            //Получаем оставшееся отчество
            string fatherName = Name.Substring(index).Trim().Substring(0, 1).ToUpper() + Name.Substring(index).Trim().Substring(1).ToLower();
 
            Console.WriteLine("Отчество - " + fatherName);
 
            return lastName + " " + firstName.Substring(0, 1) + ". " + fatherName.Substring(0, 1) + ".";
 
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.214 из 5
Похожие ответы