9 - Cadenas de caracteres
En C# hemos visto que cuando queremos almacenar un valor entero definimos una variable de tipo int, si queremos almacenar un valor con decimales definimos una variable de tipo float. Ahora si queremos almacenar una cadena de caracteres (por ejemplo un nombre de una persona) debemos definir una variable de tipo string.
En realidad hemos estado utilizando en todos los problemas planteados desde el principio la definición de una variable de tipo string donde almacenamos cualquier dato que carga el operador por teclado, esto debido a que la clase Console tiene el método ReadLine que carga un string.
Más adelante veremos en profundidad y detenimiento los conceptos del manejo de string, por ahora solo nos interesa la mecánica para trabajar con cadenas de caracteres.
Problema 1:
Solicitar el ingreso del nombre y edad de dos personas. Mostrar el nombre de la persona con mayor edad.
Programa:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CadenaDeCaracteres1
{
class Program
{
static void Main(string[] args)
{
String nombre1,nombre2;
int edad1,edad2;
String linea;
Console.Write("Ingrese el nombre:");
nombre1=Console.ReadLine();
Console.Write("Ingrese edad:");
linea=Console.ReadLine();
edad1=int.Parse(linea);
Console.Write("Ingrese el nombre:");
nombre2=Console.ReadLine();
Console.Write("Ingrese edad:");
linea=Console.ReadLine();
edad2=int.Parse(linea);
Console.Write("La persona de mayor edad es:");
if (edad1>edad2)
{
Console.Write(nombre1);
}
else
{
Console.Write(nombre2);
}
Console.ReadKey();
}
}
}
Para almacenar un nombre debemos definir una variable de tipo string y su ingreso por teclado se hace llamando al método ReadLine del objeto Console:
nombre1=Console.ReadLine();
No tenemos que hacer ninguna conversión como sucede cuando cargamos un valor de tipo int o float.
Problema 2:
Solicitar el ingreso de dos apellidos. Mostrar un mensaje si son iguales o distintos.
Programa:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CadenaDeCaracteres3
{
class Program
{
static void Main(string[] args)
{
string apellido1,apellido2;
Console.Write("Ingrese primer apellido:");
apellido1=Console.ReadLine();
Console.Write("Ingrese segundo apellido:");
apellido2=Console.ReadLine();
if (apellido1==apellido2)
{
Console.Write("Los apellidos son iguales");
}
else
{
Console.Write("Los apellidos son distintos");
}
Console.ReadKey();
}
}
}
Para comparar si el contenido de dos string son iguales se utiliza el operador == como si se estuvieran comparando dos enteros.
La condición se verifica verdadero si los contenidos de los dos string son exactamente iguales, es decir si cargamos «Martinez» en apellido1 y «martinez» en apellido2 luego retorna falso ya que no es lo mismo la «M» mayúscula y la «m» minúscula.
En el caso que necesitemos considerar igual caracteres mayúsculas y minúsculas veremos más adelante como resolverlo