Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Написать программу на языке C#

vikchass2903 Ученик (123), на голосовании 8 часов назад
Работа с символьными потоками.
1. Дан текстовый файл. Найти количество строк, которые начинаются с данной буквы.
Голосование за лучший ответ
CPT Просветленный (20554) 1 месяц назад
 using System; 
using System.IO;

namespace LineCountByFirstLetter
{
class Program
{
static void Main(string[] args)
{
try
{
// Путь к текстовому файлу
string filePath = "путь_к_файлу.txt"; // Замените на реальный путь к файлу

// Буква, с которой будем искать строки
char targetLetter = 'A'; // Замените на нужную букву

// Считываем все строки из файла
string[] lines = File.ReadAllLines(filePath);

int count = 0; // Счетчик строк

foreach (string line in lines)
{
// Проверяем, начинается ли строка с заданной буквы (без учета регистра)
if (line.Length > 0 && char.ToUpper(line[0]) == char.ToUpper(targetLetter))
{
count++;
}
}

Console.WriteLine($"Количество строк, начинающихся с буквы '{targetLetter}': {count}");
}
catch (Exception ex)
{
Console.WriteLine($"Ошибка: {ex.Message}");
}
}
}
}
Замените "путь_к_файлу.txt" на реальный путь к вашему текстовому файлу и выберите нужную букву для поиска. Программа чувствительна к регистру, поэтому она учитывает как заглавные, так и строчные буквы.
Николай Веселуха Высший разум (360749) 1 месяц назад
 using System; 
using System.IO;
class Program {
private static void Main() {
string? path = null;
while (path == null || path.Length == 0) {
Console.Write("Введите путь к текстовому файлу: ");
if ((path = Console.ReadLine()) != null) {
path = path.Trim();
}
}
using var sr = new StreamReader(path);
if (sr.BaseStream != null) {
Console.Write("Введите букву: ");
var letter = Console.ReadKey().KeyChar;
Console.WriteLine();
string? line;
var count = 0;
while ((line = sr.ReadLine()) != null) {
line = line.Trim();
if (line.Length == 0) continue;
if (line[0] == letter) ++count;
}
sr.Close();
Console.WriteLine($"Количество строк: {count}");
}
Console.ReadKey();
}
}
Jurijus Zaksas Искусственный Интеллект (425076) 1 месяц назад
Ну вы даете, ребята... Тут же вся программа в 2 строчки:
 char StartChar = Console.ReadLine()[0]; 
Console.WriteLine(File.ReadAllLines(@"c:\temp\somefile.txt").Count(x => x.StartsWith(StartChar)));
Николай ВеселухаВысший разум (360749) 4 недели назад
Ну так, если повезёт с открытием файла, то можно подсчитать строки, которые начинаются, вместо буквы, с пробела, и спокойно идти служить в родную армию, тем более, что там становиться всё интереснее.
Jurijus Zaksas Искусственный Интеллект (425076) Защита от дурака - вещь хорошая, но насколько это нужно делать в таких тестовых заданиях - большой вопрос. Тот же пробел - тоже большой вопрос. Если пользователь окончательно упорется, он вместо обычного пробела может ввести какой-нибудь nbsp - никакая защита от дурака не спасет.
Марина Тропинина Гуру (4564) 1 месяц назад
Мурр, вот пример программы на C#, которая выполняет указанную вами задачу. Обратите внимание, что вам нужно заменить `"filepath.txt"` на путь к вашему текстовому файлу и `'a'` на букву, с которой должны начинаться строки.

```CSharp
using System;
using System.IO ;

class Program
{
static void Main()
{
string path = "filepath.txt";
char startChar = 'a';
int count = 0;

using (StreamReader sr = File.OpenText(path))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
if (s.Length > 0 && s[0] == startChar)
{
count++;
}
}
}

Console.WriteLine($"Количество строк, начинающихся с буквы '{startChar}': {count}");
}
}
```

Эта программа читает файл по указанному пути и проверяет каждую строку. Если первый символ строки совпадает с заданным символом `startChar`, счетчик увеличивается. В конце программа выводит количество строк, которые начинаются с заданной буквы. Мурр
Похожие вопросы