C Library Functions  - squeeze (3)

NAME

squeeze(3f) - [M_strings:EDITING] delete adjacent duplicate occurrences of a character from a string (LICENSE:PD)

CONTENTS

Synopsis
Description
Options
Returns
Examples
Author
License

SYNOPSIS

function squeeze(STR,CHAR) result (OUTSTR)

    character(len=*),intent(in)          :: STR
    character(len=*),intent(in),optional :: CHAR
    character(len=len(str))              :: OUTSTR

DESCRIPTION

squeeze(3f) reduces adjacent duplicates of the specified character to a single character

OPTIONS

STR input string in which to reduce adjacent duplicate characters to a single character
CHAR The character to remove adjacent duplicates of

RETURNS

OUTSTR string with all contiguous adjacent occurrences of CHAR removed

EXAMPLES

Sample Program:

   program demo_squeeze
   use M_strings, only : squeeze
   implicit none
   character(len=:),allocatable :: strings(:)

strings=[ character(len=72) :: & &’’, & &’"If I were two-faced,& &would I be wearing this one?" --- Abraham Lincoln’, & &’..1111111111111111111& &111111111111111111111111111111111111111111117777888’, & &’I never give ’’em hell,& &I just tell the truth, and they think it’’s hell.’,& &’ & & --- Harry S Truman’ & &] call printme( trim(strings(1)), ’ ’ ) call printme( strings(2:4), [’-’,’7’,’.’] ) call printme( strings(5), [’ ’,’-’,’r’] ) contains impure elemental subroutine printme(str,chr) character(len=*),intent(in) :: str character(len=1),intent(in) :: chr character(len=:),allocatable :: answer write(*,’(a)’)repeat(’=’,11) write(*,’("IN: <<<",g0,">>>")’)str answer=squeeze(str,chr) write(*,’("OUT: <<<",g0,">>>")’)answer write(*,’("LENS: ",*(g0,1x))’)"from",len(str),"to",len(answer), & & "for a change of",len(str)-len(answer) write(*,’("CHAR: ",g0)’)chr end subroutine printme end program demo_squeeze

AUTHOR

John S. Urban

LICENSE

Public Domain


Nemo Release 3.1 squeeze (3) July 22, 2023
Generated by manServer 1.08 from a2c50f51-a481-4eab-8ed7-7ea5d0d12292 using man macros.