Ejercicio
Conversor de C a C#
Objetivo
Cree un programa para convertir programas de C simples, como el siguiente, a C#:
Nota: el programa resultante debe compilar correctamente. Pruébelo con otros programas C similares.
Código de Ejemplo
using System;
using System.IO;
using System.Text.RegularExpressions;
class CToCSharpConverter
{
static void Main(string[] args)
{
if (args.Length != 1)
{
Console.WriteLine("Usage: CToCSharpConverter ");
return;
}
string inputFilePath = args[0];
if (!File.Exists(inputFilePath))
{
Console.WriteLine("Error: The C file does not exist.");
return;
}
try
{
string cCode = File.ReadAllText(inputFilePath);
string cSharpCode = ConvertCToCSharp(cCode);
string outputFilePath = Path.ChangeExtension(inputFilePath, ".cs");
File.WriteAllText(outputFilePath, cSharpCode);
Console.WriteLine($"Conversion complete. C# code saved to {outputFilePath}");
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
}
}
static string ConvertCToCSharp(string cCode)
{
cCode = Regex.Replace(cCode, @"#include\s+<([^>]+)>", "using $1;");
cCode = Regex.Replace(cCode, @"\bint\s+main\s*\(\)\s*{", "static void Main() {");
cCode = Regex.Replace(cCode, @"printf\s*\(([^)]+)\);", "Console.WriteLine($1);");
cCode = Regex.Replace(cCode, @"\breturn\s+0\s*;", "");
if (!cCode.Contains("using System;"))
{
cCode = "using System;\n\n" + cCode;
}
return cCode;
}
}