Вывести фамилию и инициалы - 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) + ".";
}
}