Pascal/Turbo Pascal - CADENAS STRING MAYÚSCULAS/MINÚSCULAS

 
Vista:

CADENAS STRING MAYÚSCULAS/MINÚSCULAS

Publicado por Alejandro (5 intervenciones) el 08/10/2012 12:48:25
Necesito crear un programa en pascal que haga lo siguiente:

Que reciba desde teclado una cadena de caracteres que contenga un texto cualquiera. El programa deberá pasar a mayúsculas las letras minúsculas y viceversa. Cada vez que encuentre un número, espacio, coma o punto lo respetará, y cada vez que encuentre cualquier otro símbolo, lo sustituirá por ‘?’.

Tal que así:

Bienvenido a CONVERSOR DE TEXTOS

Cadena: BUENOS DIAS! a los 120 Alumnos, mas O menos.
Salida: buenos dias? A LOS 120 aLUMNOS? MAS o MENOS.

Fin de programa_

Y de momento solo he conseguido que si ingreso un texto me lo cambien a mayúsculas entero o a minúsculas también por completo.

Gracias por vuestra ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

CADENAS STRING MAYÚSCULAS/MINÚSCULAS

Publicado por Snail (5 intervenciones) el 08/10/2012 16:52:22
Por favor ¿alguna sugerencia?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

CADENAS STRING MAYÚSCULAS/MINÚSCULAS

Publicado por ramon (2158 intervenciones) el 08/10/2012 20:07:27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
{Esto podría valerte la cadena la puedes entrar con readln ejemplo :
 var
     texto : strin78;
     readln(texto);
    inversionletras(texto) }
 
program inversion;
 uses
    crt;
  type
    strin78 = string[78];
  var
    pul : char;
 
 procedure  inversionletras(c : strin78);
 var
   cont : integer;
   cat : strin78;
  begin
      cat := copy(c,1,length(c));
      cont := 1;
      clrscr;
     repeat
        if cat[cont] in[#1..#31,#33..#38,#65..#90,#165,#97..#122,#164] then
        begin
          if cat[cont] in[#65..#90,#165] then
          begin
             cat[cont] := char(ord(cat[cont]) + 32);
             cont := cont + 1;
          end;
          if cat[cont] in[#97..#122,#164] then
          begin
             cat[cont] := upcase(cat[cont]);
             cont := cont + 1;
          end;
          if cat[cont] in[#1..#31,#33..#43,#45,#47,#58..#64,#91..#96,
                                      #123..#163,#166..#254] then
          begin
             cat[cont] := '?';
             cont := cont + 1;
          end;
        end
      else
      cont := cont + 1;
      until cont > length(c);
      writeln;
      writeln('***** El Cambios Realizados *****');
      writeln;
      for cont := 1 to length(c) do
      write(c[cont]);
      writeln;
      writeln;
      for cont := 1 to length(c) do
      write(cat[cont]);
      writeln;
      writeln;
      writeln('<<<< Pulse [Enter] >>>>');
      repeat
         pul := readkey;
     until pul = #13;
  end;
 
  begin
      inversionletras('BUENOS DIAS! a los 120 Alumnos, mas O menos.');
 
  end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

CADENAS STRING MAYÚSCULAS/MINÚSCULAS

Publicado por fernando (1 intervención) el 17/04/2014 15:13:29
hola es la primara vez que entro en esta pagina. Me gustaria que me ayuden en un problema que tengo :
Realizar un programa en pascal que lea oraciones terminadas en '.' Cuando se lea el caracter '#'
luego del '.', el programa termina
El programa debe mostrar las mismas oraciones pero dando un formato a las mismas
El formato consiste en poner la primer letra de la primer palabra de cada oración en mayúscula y a
las demás letras, mostrarlas en minúscula. Además, en caso de haber varios espacios en blanco, solo
se debe dejar uno.
Para simplificar la solución, solo se procesarán los caracteres ascii:
* 'a' .. 'z' ,
* 'A' .. 'Z'.
* las vocales acentuadas : á é í ó ú Á É Í Ó Ú.
* Ñ Y ñ
Los demás caracteres se dejarán sin modificación
Ejemplos:
hola, Esto es UNA PRUEba!!. esta ES lA seGUNda oraCIÓN?. Feliz AÑo.#
Hola, esto es una prueba!!. Esta es la segunda oración?. Feliz año.
Para resolver el problema, investigue el código ascii y las funciones predefinidas ORD y CHR de
freepascal.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar