martes, 6 de enero de 2015

TAREA EN CLASE 06/01/2015



Cadenas dinámicas y estáticas

Existen dos tipos de cadenas:
Cadenas dinámicas: Las cadenas pueden ser de naturaleza dinámica (pueden alterar su longitud durante el tiempo de ejecución).
Mediante un carácter de fin de cadena ("\0" en C) para las cadenas de tipo dinámico.
Sintaxis

charmi_cadena [5] = {‘M’,’u’,‘n’,’d’,’o’,’\0’};

Cadenas estáticas: De naturaleza estática (su longitud es fija a lo largo del tiempo de ejecución).

Mediante una propiedad de la cadena que delimite su longitud (Count en C#) para las de tipo estático.

Usos de las cadenas
§  Usados para describir las características de las personas y cosas.

  • Copia de una cadena
  • Cálculo de la longitud,
  • Comparación,
  • Concatenación,
  • Extracción de subcadenas,
  • Búsqueda de información dentro de las cadenas,
  • Conversiones. 
Operaciones con cadenas

Asignación: asignarle una cadena a otra
char *strcpy(char [], const char[]); # en C
cadena1=cadena2;                     # en C++
cadena1 := cadena2                   # en Smalltalk

Concatenación: unir dos cadenas de caracteres.
$pareja = "Joshua"." y "."Marina"     # en Perl y PHP;
pareja = "Luisa" & " y " & "Carmen"  # en Visual Basic;
pareja = "Luisa" + " y " + "Carmen"; # en C++ y Java con la clase String.
pareja := 'Luisa' , ' y ' , 'Carmen'.  # en Smalltalk
strcat(cadena1,cadena2); strcat(cadena1, cadena3); # en C (Debe haber suficiente espacio en la primera)

Nº de caracteres de una cadena
int strlen(const char[]); # en C Devuelve el nº de caracteres sin contar el '\0'
cadena.length();          # en C++
cadena size.              # en Smalltalk

Comparación: Compara dos cadenas en orden lexicográfico
int strcmp(const char[], const char[]); # en C Devuelvee <0 si la 1ª es menor, >0 si es mayor y 0 si son iguales
cadena1==cadena2; cadena1>cadena2; etc. # en C++ Devuelve un valor de verdad
cadena1 = cadena2                       # en Smalltalk Devuelve true o false.
Multiplicar una cadena: repetir una cadena un número de veces
$puntos ="." x 5 # pone 5 puntos en Perl
puntos := Generator generateJoin: '.' repeat: 5.   # Genera una cadena de 5 puntos en Smalltalk


Acceder a las letras que forman una cadena
Podemos leer (o modificar) una de las letras de una cadena de igual forma que leemos los elementos de cualquier array: si la cadena se llama "texto", el primer elemento será texto [0], el segundo será texto [1] y así sucesivamente.
Eso sí, las cadenas en C# no se pueden modificar letra a letra: no podemos hacer texto [0]=’a’. Para eso habrá que usar una construcción auxiliar, que veremos más adelante.

Longitud de la cadena.
Podemos saber cuántas letras forman una cadena con "cadena.Length". Esto permite que podamos recorrer la cadena letra por letra, usando construcciones como "for".
Ejercicio propuesto: Un programa te pida tu nombre y lo muestre en pantalla separando cada letra de la siguiente con un espacio. Por ejemplo, si tu nombre es "Juan", debería aparecer en pantalla "J u a n".

Extraer una subcadena
Podemos extraer parte del contenido de una cadena con "Substring", que recibe dos parámetros: la posición a partir de la que queremos empezar y la cantidad de caracteres que queremos obtener. El resultado será otra cadena:
saludo = frase.Substring(0,4);
Podemos omitir el segundo número, y entonces se extraerá desde la posición indicada hasta el final de la cadena.

Buscar en una cadena
Para ver si una cadena contiene un cierto texto, podemos usar IndexOf ("posición de"), que nos dice en qué posición se encuentra (o devuelve el valor -1 si no aparece):
if (nombre.IndexOf("Juan") >= 0) Console.Write("Bienvenido, Juan");
Podemos añadir un segundo parámetro opcional, que es la posición a partir de la que queremos buscar:
if (nombre.IndexOf("Juan", 5) >= 0) ...
La búsqueda termina al final de la cadena, salvo que indiquemos que termine antes con un tercer parámetro opcional:
if (nombre.IndexOf("Juan", 5, 15) >= 0) ...
De forma similar, LastIndexOf ("última posición de") indica la última aparición (es decir, busca de derecha a izquierda).


Sintaxis
public static void Main()
  {
    tipoFicha[] fichas  = new tipoFicha[1000];
}  



Referencias:

No hay comentarios:

Publicar un comentario