@@ -12,7 +12,7 @@ module stdlib_strings
12
12
13
13
public :: strip, chomp
14
14
public :: starts_with, ends_with
15
- public :: slice, find, replace_all
15
+ public :: slice, find, replace_all, padl, padr
16
16
17
17
18
18
! > Remove leading and trailing whitespace characters.
@@ -584,18 +584,19 @@ pure function replace_all_char_char_char(string, pattern, replacement, replace_o
584
584
585
585
end function replace_all_char_char_char
586
586
587
- ! > Left pad the input string with the 'pad_with' string
587
+ ! > Left pad the input string with " " (1 whitespace)
588
588
! >
589
589
! > Returns a new string
590
590
pure function padl_string_default (string , output_length ) result(res)
591
591
type (string_type), intent (in ) :: string
592
592
integer , intent (in ) :: output_length
593
593
type (string_type) :: res
594
594
595
- res = string_type(padl_char_char(char (string), output_length, " " ))
595
+ res = string_type(padl(char (string), output_length, " " ))
596
+
596
597
end function padl_string_default
597
598
598
- ! > Left pad the input string with the 'pad_with' string
599
+ ! > Left pad the input string with the 'pad_with' character
599
600
! >
600
601
! > Returns a new string
601
602
pure function padl_string_pad_with (string , output_length , pad_with ) result(res)
@@ -604,65 +605,58 @@ pure function padl_string_pad_with(string, output_length, pad_with) result(res)
604
605
character (len= 1 ), intent (in ) :: pad_with
605
606
type (string_type) :: res
606
607
607
- res = string_type(padl_char_char(char (string), output_length, pad_with))
608
+ res = string_type(padl(char (string), output_length, pad_with))
609
+
608
610
end function padl_string_pad_with
609
611
610
- ! > Left pad the input string with the 'pad_with' string
612
+ ! > Left pad the input string with " " (1 whitespace)
611
613
! >
612
614
! > Returns a new string
613
615
pure function padl_char_default (string , output_length ) result(res)
614
616
character (len=* ), intent (in ) :: string
615
617
integer , intent (in ) :: output_length
616
618
character (len= max (len (string), output_length)) :: res
617
619
618
- res = padl_char_char(string, output_length, " " )
620
+ res = padl(string, output_length, " " )
621
+
619
622
end function padl_char_default
620
623
621
- ! > Left pad the input string with the 'pad_with' string
624
+ ! > Left pad the input string with the 'pad_with' character
622
625
! >
623
626
! > Returns a new string
624
627
pure function padl_char_pad_with (string , output_length , pad_with ) result(res)
625
628
character (len=* ), intent (in ) :: string
626
629
integer , intent (in ) :: output_length
627
630
character (len= 1 ), intent (in ) :: pad_with
628
631
character (len= max (len (string), output_length)) :: res
629
-
630
- res = padl_char_char(string, output_length, pad_with)
631
- end function padl_char_pad_with
632
-
633
- ! > Left pad the input string with the 'pad_with' string
634
- ! >
635
- ! > Returns a new string
636
- pure function padl_char_char (string , output_length , pad_with ) result(res)
637
- character (len=* ), intent (in ) :: string
638
- integer , intent (in ) :: output_length
639
- character (len= 1 ), intent (in ) :: pad_with
640
- character (len= max (len (string), output_length)) :: res
641
632
integer :: string_length
642
-
633
+
643
634
string_length = len (string)
644
-
635
+
645
636
if (string_length < output_length) then
646
637
res = repeat (pad_with, output_length - string_length)
647
638
res(output_length - string_length + 1 : output_length) = string
648
639
else
649
640
res = string
650
641
end if
651
-
652
- end function padl_char_char
653
642
654
- ! > Right pad the input string with the 'pad_with' string
643
+ end function padl_char_pad_with
644
+
645
+ ! > Right pad the input string with " " (1 whitespace)
655
646
! >
656
647
! > Returns a new string
657
648
pure function padr_string_default (string , output_length ) result(res)
658
649
type (string_type), intent (in ) :: string
659
650
integer , intent (in ) :: output_length
651
+ character (len= max (len (string), output_length)) :: char_output
660
652
type (string_type) :: res
661
653
662
- res = string_type(padr_char_char(char (string), output_length, " " ))
654
+ char_output = char (string)
655
+ res = string_type(char_output)
656
+
663
657
end function padr_string_default
664
658
665
- ! > Right pad the input string with the 'pad_with' string
659
+ ! > Right pad the input string with the 'pad_with' character
666
660
! >
667
661
! > Returns a new string
668
662
pure function padr_string_pad_with (string , output_length , pad_with ) result(res)
@@ -671,10 +665,11 @@ pure function padr_string_pad_with(string, output_length, pad_with) result(res)
671
665
character (len= 1 ), intent (in ) :: pad_with
672
666
type (string_type) :: res
673
667
674
- res = string_type(padr_char_char(char (string), output_length, pad_with))
668
+ res = string_type(padr(char (string), output_length, pad_with))
669
+
675
670
end function padr_string_pad_with
676
671
677
- ! > Right pad the input string with the 'pad_with' string
672
+ ! > Right pad the input string with " " (1 whitespace)
678
673
! >
679
674
! > Returns a new string
680
675
pure function padr_char_default (string , output_length ) result(res)
@@ -683,39 +678,28 @@ pure function padr_char_default(string, output_length) result(res)
683
678
character (len= max (len (string), output_length)) :: res
684
679
685
680
res = string
686
- end function padr_char_default
687
681
688
- ! > Right pad the input string with the 'pad_with' string
689
- ! >
690
- ! > Returns a new string
691
- pure function padr_char_pad_with (string , output_length , pad_with ) result(res)
692
- character (len=* ), intent (in ) :: string
693
- integer , intent (in ) :: output_length
694
- character (len= 1 ), intent (in ) :: pad_with
695
- character (len= max (len (string), output_length)) :: res
696
-
697
- res = padr_char_char(string, output_length, pad_with)
698
- end function padr_char_pad_with
682
+ end function padr_char_default
699
683
700
684
! > Right pad the input string with the 'pad_with' character
701
685
! >
702
686
! > Returns a new string
703
- pure function padr_char_char (string , output_length , pad_with ) result(res)
687
+ pure function padr_char_pad_with (string , output_length , pad_with ) result(res)
704
688
character (len=* ), intent (in ) :: string
705
689
integer , intent (in ) :: output_length
706
690
character (len= 1 ), intent (in ) :: pad_with
707
691
character (len= max (len (string), output_length)) :: res
708
692
integer :: string_length
709
693
710
694
string_length = len (string)
711
-
695
+
712
696
res = string
713
697
if (string_length < output_length) then
714
698
res(string_length + 1 : output_length) = repeat (pad_with, &
715
699
& output_length - string_length)
716
700
end if
717
-
718
- end function padr_char_char
701
+
702
+ end function padr_char_pad_with
719
703
720
704
721
705
end module stdlib_strings
0 commit comments