Remove vowels from a string: Difference between revisions

From Rosetta Code
Content added Content deleted
m (→‎{{header|REXX}}: changed whitespace.)
(→‎{{header|REXX}}: added a 2nd version.)
Line 4: Line 4:


=={{header|REXX}}==
=={{header|REXX}}==
=== using the TRANSLATE BIF ===
<lang rexx>/*REXX program removes vowels (both lowercase and uppercase) from a string. */
<lang rexx>/*REXX program removes vowels (both lowercase and uppercase) from a string. */
parse arg x /*obtain optional argument from the CL.*/
parse arg x /*obtain optional argument from the CL.*/
Line 19: Line 20:
output string: RXX Prgrmmng Lngg
output string: RXX Prgrmmng Lngg
</pre>
</pre>

=== using character eliding ===
<lang rexx>/*REXX program removes vowels (both lowercase and uppercase) from a string. */
parse arg x /*obtain optional argument from the CL.*/
if x='' | x="," then x= 'REXX Programming Language' /*Not specified? Then use default*/
say ' input string: ' x
x= . || x /*prefix string with a dummy character.*/

do j=length(x)-1 by -1 for length(x)-1 /*process the string from the backend. */
_= pos( substr(x, j, 1), 'AEIOUaeiou') /*is this particular character a vowel?*/
if _==0 then iterate /*if zero (not a vowel), then skip it.*/
x= left(x, j - 1) || substr(x, j + 1) /*elide the vowel just detected from X.*/
end /*j*/

x= substr(x, 2) /*elide the prefixed dummy characger. */
say 'output string: ' x /*stick a fork in it, we're all done. */</lang>
{{out|output|text=&nbsp; is identical to the 1<sup>st</sup> REXX version.}} <br><br>


=={{header|Ring}}==
=={{header|Ring}}==

Revision as of 09:58, 25 July 2020

Remove vowels from a string is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.

Remove vowels from a string

REXX

using the TRANSLATE BIF

<lang rexx>/*REXX program removes vowels (both lowercase and uppercase) from a string. */ parse arg x /*obtain optional argument from the CL.*/ if x= | x="," then x= 'REXX Programming Language' /*Not specified? Then use default*/ say ' input string: ' x $= translate( xrange(), ., ' ') /*define a string of almost all chars. */ q= substr($, verify($, x), 1) /*find a character NOT in the X string.*/ y= translate(x, q, " ") /*trans. blanks in the string (for now)*/ y= space(translate(y, , 'AEIOUaeiou'), 0) /*trans. vowels──►blanks, elide blanks.*/ y= translate(y, , q) /*trans the Q characters back to blanks*/ say 'output string: ' y /*stick a fork in it, we're all done. */</lang>

output   when using the default input:
 input string:  REXX Programming Language
output string:  RXX Prgrmmng Lngg

using character eliding

<lang rexx>/*REXX program removes vowels (both lowercase and uppercase) from a string. */ parse arg x /*obtain optional argument from the CL.*/ if x= | x="," then x= 'REXX Programming Language' /*Not specified? Then use default*/ say ' input string: ' x x= . || x /*prefix string with a dummy character.*/

    do j=length(x)-1  by -1  for  length(x)-1   /*process the string from the backend. */
    _= pos( substr(x, j, 1), 'AEIOUaeiou')      /*is this particular character a vowel?*/
    if _==0  then iterate                       /*if zero  (not a vowel), then skip it.*/
    x= left(x, j - 1)  ||  substr(x, j + 1)     /*elide the vowel just detected from X.*/
    end   /*j*/

x= substr(x, 2) /*elide the prefixed dummy characger. */ say 'output string: ' x /*stick a fork in it, we're all done. */</lang>

output   is identical to the 1st REXX version.



Ring

<lang ring> load "stdlib.ring" str = "Ring Programming Language" see "Input : " + str + nl for n = 1 to len(str)

   if isVowel(str[n])
      str = substr(str,str[n],"")
   ok

next see "String without vowels: " + str + nl </lang>

Output:
Input : Ring Programming Language
String without vowels: Rng Prgrmmng Lngg