14 — Funciones de Cadena


Disponibilidad

Las funciones de cadena están disponibles desde la versión 20121010 (octubre 2012). Requieren que el perfil de lenguaje las tenga habilitadas. Si aparecen errores, revisar Configurar → Opciones del Lenguaje.


Tabla completa de funciones de cadena

FunciónDescripciónEjemploResultado
Longitud(S)Cantidad de caracteres de la cadena SLongitud("Hola")4
Mayusculas(S)Copia de S en mayúsculasMayusculas("hola")"HOLA"
Minusculas(S)Copia de S en minúsculasMinusculas("HOLA")"hola"
Subcadena(S,X,Y)Parte de S desde posición X hasta YSubcadena("Hola",1,2)"Ho"
Concatenar(S1,S2)Une S1 y S2 en una nueva cadenaConcatenar("Ho","la")"Hola"
ConvertirANumero(S)Convierte cadena numérica a númeroConvertirANumero("42")42
ConvertirATexto(N)Convierte número a cadenaConvertirATexto(42)"42"

Longitud(S) — largo de una cadena

Proceso EjemploLongitud
    Definir frase Como Texto;
    Escribir "Ingrese una frase: ";
    Leer frase;
    Escribir "La frase tiene ", Longitud(frase), " caracteres.";
FinProceso

Mayusculas(S) y Minusculas(S) — conversión de caso

Proceso ConvertirCaso
    Definir nombre Como Texto;
    Leer nombre;
    Escribir "Mayúsculas: ", Mayusculas(nombre);
    Escribir "Minúsculas: ", Minusculas(nombre);
FinProceso

Uso en comparaciones

Para comparar cadenas sin importar si son mayúsculas o minúsculas, normalizar primero:

Si Minusculas(respuesta) = "si" Entonces
    Escribir "Confirmado";
FinSi;

Subcadena(S, X, Y) — extraer parte de una cadena

// Extraer los primeros 3 caracteres
inicial <- Subcadena(nombre, 1, 3);

// Extraer el último carácter
ultimo <- Subcadena(texto, Longitud(texto), Longitud(texto));

// Recorrer letra por letra
Para i <- 1 Hasta Longitud(frase) Hacer
    letra <- Subcadena(frase, i, i);
    Escribir letra;
FinPara;

Base de índices

La posición de inicio depende del perfil de lenguaje:

  • Perfil estándar: índices desde 1 (la primera letra es la posición 1)
  • Perfil alternativo: índices desde 0 (la primera letra es la posición 0)

Concatenar(S1, S2) — unir cadenas

Proceso ConcatenarNombre
    Definir nombre, apellido, completo Como Texto;
    Leer nombre;
    Leer apellido;
    completo <- Concatenar(nombre, Concatenar(" ", apellido));
    Escribir "Nombre completo: ", completo;
FinProceso

Alternativa con Escribir

Para mostrar texto concatenado, Escribir ya acepta múltiples valores separados por coma:

Escribir "Hola, ", nombre, " ", apellido;

Concatenar es útil cuando necesitas guardar el resultado en una variable.


ConvertirANumero(S) y ConvertirATexto(N) — conversión de tipos

Proceso ConversionTipos
    Definir numStr Como Texto;
    Definir num Como Real;

    numStr <- "3.14";
    num <- ConvertirANumero(numStr);
    Escribir "El número es: ", num;
    Escribir "El doble es: ", num * 2;

    // Convertir número a texto para concatenar
    Definir resultado Como Texto;
    resultado <- Concatenar("El resultado es: ", ConvertirATexto(num * 2));
    Escribir resultado;
FinProceso

Ejemplo completo — Contar vocales

Proceso ContarVocales
    Definir frase, vocales Como Texto;
    Definir i, j, cantVocales Como Entero;

    Escribir "Ingrese una frase: ";
    Leer frase;
    frase <- Minusculas(frase);
    vocales <- "aeiouáéíóúü";
    cantVocales <- 0;

    Para i <- 1 Hasta Longitud(frase) Hacer
        Para j <- 1 Hasta Longitud(vocales) Hacer
            Si Subcadena(frase, i, i) = Subcadena(vocales, j, j) Entonces
                cantVocales <- cantVocales + 1;
            FinSi;
        FinPara;
    FinPara;

    Escribir "La frase contiene ", cantVocales, " vocal(es).";
FinProceso

Ejemplo — Invertir una cadena

Proceso InvertirCadena
    Definir original, invertida Como Texto;
    Definir i Como Entero;

    Escribir "Ingrese una palabra: ";
    Leer original;
    invertida <- "";

    Para i <- Longitud(original) Hasta 1 Con Paso -1 Hacer
        invertida <- Concatenar(invertida, Subcadena(original, i, i));
    FinPara;

    Escribir "Invertida: ", invertida;
FinProceso

Comparación de cadenas

PSeInt es sensible a mayúsculas al comparar cadenas:

Si "Hola" = "hola" Entonces    // Falso (diferente caso)
    Escribir "Iguales";
FinSi;

// Para comparar sin distinción de caso:
Si Minusculas(cad1) = Minusculas(cad2) Entonces
    Escribir "Son iguales (sin importar caso)";
FinSi;

Relación con otros temas


Creado con Quartz v4.5.2 © 2026 | Contribución: Alexis Carrillo | Círculo Interno • EvoClub