all tasks
This commit is contained in:
parent
b83f433714
commit
68f8f3e56b
14735 changed files with 178959 additions and 0 deletions
7
Task/Substring-Top-and-tail/0DESCRIPTION
Normal file
7
Task/Substring-Top-and-tail/0DESCRIPTION
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
The task is to demonstrate how to remove the first and last characters from a string. The solution should demonstrate how to obtain the following results:
|
||||
|
||||
* String with first character removed
|
||||
* String with last character removed
|
||||
* String with both the first and last characters removed
|
||||
|
||||
If the program uses UTF-8 or UTF-16, it must work on any valid Unicode code point, whether in the Basic Multilingual Plane or above it. The program must reference logical characters (code points), not 8-bit code units for UTF-8 or 16-bit code units for UTF-16. Programs for other encodings (such as 8-bit ASCII, or EUC-JP) are not required to handle all Unicode characters.
|
||||
3
Task/Substring-Top-and-tail/1META.yaml
Normal file
3
Task/Substring-Top-and-tail/1META.yaml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
category:
|
||||
- String manipulation
|
||||
15
Task/Substring-Top-and-tail/ACL2/substring-top-and-tail.acl2
Normal file
15
Task/Substring-Top-and-tail/ACL2/substring-top-and-tail.acl2
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
(defun str-rest (str)
|
||||
(coerce (rest (coerce str 'list)) 'string))
|
||||
|
||||
(defun rdc (xs)
|
||||
(if (endp (rest xs))
|
||||
nil
|
||||
(cons (first xs)
|
||||
(rdc (rest xs)))))
|
||||
|
||||
(defun str-rdc (str)
|
||||
(coerce (rdc (coerce str 'list)) 'string))
|
||||
|
||||
(str-rdc "string")
|
||||
(str-rest "string")
|
||||
(str-rest (str-rdc "string"))
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
#!/usr/local/bin/a68g --script #
|
||||
|
||||
STRING str="upraisers";
|
||||
printf(($gl$,
|
||||
str, # remove no characters #
|
||||
str[LWB str+1: ], # remove the first character #
|
||||
str[ :UPB str-1], # remove the last character #
|
||||
str[LWB str+1:UPB str-1], # remove both the first and last character #
|
||||
str[LWB str+2: ], # remove the first 2 characters #
|
||||
str[ :UPB str-2], # remove the last 2 characters #
|
||||
str[LWB str+1:UPB str-2], # remove 1 before and 2 after #
|
||||
str[LWB str+2:UPB str-1], # remove 2 before and one after #
|
||||
str[LWB str+2:UPB str-2] # remove both the first and last 2 characters #
|
||||
))
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
BEGIN {
|
||||
mystring="knights"
|
||||
print substr(mystring,2) # remove the first letter
|
||||
print substr(mystring,1,length(mystring)-1) # remove the last character
|
||||
print substr(mystring,2,length(mystring)-2) # remove both the first and last character
|
||||
}
|
||||
11
Task/Substring-Top-and-tail/Ada/substring-top-and-tail.ada
Normal file
11
Task/Substring-Top-and-tail/Ada/substring-top-and-tail.ada
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
with Ada.Text_IO;
|
||||
|
||||
procedure Remove_Characters is
|
||||
S: String := "upraisers";
|
||||
use Ada.Text_IO;
|
||||
begin
|
||||
Put_Line("Full String: """ & S & """");
|
||||
Put_Line("Without_First: """ & S(S'First+1 .. S'Last) & """");
|
||||
Put_Line("Without_Last: """ & S(S'First .. S'Last-1) & """");
|
||||
Put_Line("Without_Both: """ & S(S'First+1 .. S'Last-1) & """");
|
||||
end Remove_Characters;
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
myString := "knights"
|
||||
MsgBox % SubStr(MyString, 2)
|
||||
MsgBox % SubStr(MyString, 1, StrLen(MyString)-1)
|
||||
MsgBox % SubStr(MyString, 2, StrLen(MyString)-2)
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
10 PRINT FN F$("KNIGHTS"): REM STRIP THE FIRST LETTER
|
||||
20 PRINT FN L$("SOCKS"): REM STRIP THE LAST LETTER
|
||||
30 PRINT FN B$("BROOMS"): REM STRIP BOTH THE FIRST AND LAST LETTER
|
||||
100 END
|
||||
|
||||
9000 DEF FN F$(A$)=RIGHT$(A$,LEN(A$)-1)
|
||||
9010 DEF FN L$(A$)=LEFT$(A$,LEN(A$)-1)
|
||||
9020 DEF FN B$(A$)=FN L$(FN F$(A$))
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
s$ = "Rosetta Code"
|
||||
PRINT MID$(s$, 2)
|
||||
PRINT LEFT$(s$)
|
||||
PRINT LEFT$(MID$(s$, 2))
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
(substringUTF-8=
|
||||
@( Δημοτική
|
||||
: (%?a&utf$!a) ?"String with first character removed"
|
||||
)
|
||||
& @( Δημοτική
|
||||
: ?"String with last character removed" (?z&utf$!z)
|
||||
)
|
||||
& @( Δημοτική
|
||||
: (%?a&utf$!a)
|
||||
?"String with both the first and last characters removed"
|
||||
(?z&utf$!z)
|
||||
)
|
||||
& out
|
||||
$ ("String with first character removed:" !"String with first character removed")
|
||||
& out
|
||||
$ ("String with last character removed:" !"String with last character removed")
|
||||
& out
|
||||
$ ( "String with both the first and last characters removed:"
|
||||
!"String with both the first and last characters removed"
|
||||
));
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
(substring-8-bit=
|
||||
@("8-bit string":%@ ?"String with first character removed")
|
||||
& @("8-bit string":?"String with last character removed" @)
|
||||
& @( "8-bit string"
|
||||
: %@ ?"String with both the first and last characters removed" @
|
||||
)
|
||||
& out
|
||||
$ ("String with first character removed:" !"String with first character removed")
|
||||
& out
|
||||
$ ("String with last character removed:" !"String with last character removed")
|
||||
& out
|
||||
$ ( "String with both the first and last characters removed:"
|
||||
!"String with both the first and last characters removed"
|
||||
));
|
||||
10
Task/Substring-Top-and-tail/C++/substring-top-and-tail.cpp
Normal file
10
Task/Substring-Top-and-tail/C++/substring-top-and-tail.cpp
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
#include <string>
|
||||
#include <iostream>
|
||||
|
||||
int main( ) {
|
||||
std::string word( "Premier League" ) ;
|
||||
std::cout << "Without first letter: " << word.substr( 1 ) << " !\n" ;
|
||||
std::cout << "Without last letter: " << word.substr( 0 , word.length( ) - 1 ) << " !\n" ;
|
||||
std::cout << "Without first and last letter: " << word.substr( 1 , word.length( ) - 2 ) << " !\n" ;
|
||||
return 0 ;
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
using System;
|
||||
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
string testString = "test";
|
||||
Console.WriteLine(testString.Substring(1));
|
||||
Console.WriteLine(testString.Substring(0, testString.Length - 1));
|
||||
Console.WriteLine(testString.Substring(1, testString.Length - 2));
|
||||
}
|
||||
}
|
||||
25
Task/Substring-Top-and-tail/C/substring-top-and-tail.c
Normal file
25
Task/Substring-Top-and-tail/C/substring-top-and-tail.c
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int main( int argc, char ** argv ){
|
||||
const char * str_a = "knight";
|
||||
const char * str_b = "socks";
|
||||
const char * str_c = "brooms";
|
||||
|
||||
char * new_a = malloc( strlen( str_a ) - 1 );
|
||||
char * new_b = malloc( strlen( str_b ) - 1 );
|
||||
char * new_c = malloc( strlen( str_c ) - 2 );
|
||||
|
||||
strcpy( new_a, str_a + 1 );
|
||||
strncpy( new_b, str_b, strlen( str_b ) - 1 );
|
||||
strncpy( new_c, str_c + 1, strlen( str_c ) - 2 );
|
||||
|
||||
printf( "%s\n%s\n%s\n", new_a, new_b, new_c );
|
||||
|
||||
free( new_a );
|
||||
free( new_b );
|
||||
free( new_c );
|
||||
|
||||
return 0;
|
||||
}
|
||||
12
Task/Substring-Top-and-tail/D/substring-top-and-tail.d
Normal file
12
Task/Substring-Top-and-tail/D/substring-top-and-tail.d
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
import std.stdio;
|
||||
|
||||
void main() {
|
||||
// strip first character
|
||||
writeln("knight"[1 .. $]);
|
||||
|
||||
// strip last character
|
||||
writeln("socks"[0 .. $ - 1]);
|
||||
|
||||
// strip both first and last characters
|
||||
writeln("brooms"[1 .. $ - 1]);
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
program TopAndTail;
|
||||
|
||||
{$APPTYPE CONSOLE}
|
||||
|
||||
const
|
||||
TEST_STRING = '1234567890';
|
||||
begin
|
||||
Writeln(TEST_STRING); // full string
|
||||
Writeln(Copy(TEST_STRING, 2, Length(TEST_STRING))); // first character removed
|
||||
Writeln(Copy(TEST_STRING, 1, Length(TEST_STRING) - 1)); // last character removed
|
||||
Writeln(Copy(TEST_STRING, 2, Length(TEST_STRING) - 2)); // first and last characters removed
|
||||
|
||||
Readln;
|
||||
end.
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
function strip_first(sequence s)
|
||||
return s[2..$]
|
||||
end function
|
||||
|
||||
function strip_last(sequence s)
|
||||
return s[1..$-1]
|
||||
end function
|
||||
|
||||
function strip_both(sequence s)
|
||||
return s[2..$-1]
|
||||
end function
|
||||
|
||||
puts(1, strip_first("knight")) -- strip first character
|
||||
puts(1, strip_last("write")) -- strip last character
|
||||
puts(1, strip_both("brooms")) -- strip both first and last characters
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
: hello ( -- c-addr u )
|
||||
s" Hello" ;
|
||||
|
||||
hello 1 /string type \ => ello
|
||||
|
||||
hello 1- type \ => hell
|
||||
|
||||
hello 1 /string 1- type \ => ell
|
||||
11
Task/Substring-Top-and-tail/Fortran/substring-top-and-tail.f
Normal file
11
Task/Substring-Top-and-tail/Fortran/substring-top-and-tail.f
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
program substring
|
||||
|
||||
character(len=5) :: string
|
||||
string = "Hello"
|
||||
|
||||
write (*,*) string
|
||||
write (*,*) string(2:)
|
||||
write (*,*) string( :len(string)-1)
|
||||
write (*,*) string(2:len(string)-1)
|
||||
|
||||
end program substring
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
10 A$="knight":B$="socks":C$="brooms"
|
||||
20 PRINT MID$(A$,2)
|
||||
30 PRINT LEFT$(B$,LEN(B$)-1)
|
||||
40 PRINT MID$(C$,2,LEN(C$)-2)
|
||||
23
Task/Substring-Top-and-tail/Go/substring-top-and-tail.go
Normal file
23
Task/Substring-Top-and-tail/Go/substring-top-and-tail.go
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"unicode/utf8"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// ASCII contents: Interpreting "characters" as bytes.
|
||||
s := "ASCII"
|
||||
fmt.Println("String: ", s)
|
||||
fmt.Println("First byte removed: ", s[1:])
|
||||
fmt.Println("Last byte removed: ", s[:len(s)-1])
|
||||
fmt.Println("First and last removed:", s[1:len(s)-1])
|
||||
// UTF-8 contents: "Characters" as runes (unicode code points)
|
||||
u := "Δημοτική"
|
||||
fmt.Println("String: ", u)
|
||||
_, sizeFirst := utf8.DecodeRuneInString(u)
|
||||
fmt.Println("First rune removed: ", u[sizeFirst:])
|
||||
_, sizeLast := utf8.DecodeLastRuneInString(u)
|
||||
fmt.Println("Last rune removed: ", u[:len(u)-sizeLast])
|
||||
fmt.Println("First and last removed:", u[sizeFirst:len(u)-sizeLast])
|
||||
}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
def top = { it.size() > 1 ? it[0..-2] : '' }
|
||||
def tail = { it.size() > 1 ? it[1..-1] : '' }
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
def testVal = 'upraisers'
|
||||
println """
|
||||
original: ${testVal}
|
||||
top: ${top(testVal)}
|
||||
tail: ${tail(testVal)}
|
||||
top&tail: ${tail(top(testVal))}
|
||||
"""
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
-- We define the functions to return an empty string if the argument is too
|
||||
-- short for the particular operation.
|
||||
|
||||
remFirst, remLast, remBoth :: String -> String
|
||||
|
||||
remFirst "" = ""
|
||||
remFirst cs = tail cs
|
||||
|
||||
remLast "" = ""
|
||||
remLast cs = init cs
|
||||
|
||||
remBoth (c:cs) = remLast cs
|
||||
remBoth _ = ""
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
let s = "Some string."
|
||||
mapM_ (\f -> putStrLn . f $ s) [remFirst, remLast, remBoth]
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
procedure main()
|
||||
write(s := "knight"," --> ", s[2:0]) # drop 1st char
|
||||
write(s := "sock"," --> ", s[1:-1]) # drop last
|
||||
write(s := "brooms"," --> ", s[2:-1]) # drop both
|
||||
end
|
||||
|
|
@ -0,0 +1 @@
|
|||
write(s := "knight"," --> ", s[1] := "", s) # drop 1st char
|
||||
6
Task/Substring-Top-and-tail/J/substring-top-and-tail.j
Normal file
6
Task/Substring-Top-and-tail/J/substring-top-and-tail.j
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
}. 'knight' NB. drop first item
|
||||
night
|
||||
}: 'socks' NB. drop last item
|
||||
sock
|
||||
}: }. 'brooms' NB. drop first and last items
|
||||
room
|
||||
14
Task/Substring-Top-and-tail/Java/substring-top-and-tail.java
Normal file
14
Task/Substring-Top-and-tail/Java/substring-top-and-tail.java
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
public class RM_chars {
|
||||
public static void main( String[] args ){
|
||||
System.out.println( "knight".substring( 1 ) );
|
||||
System.out.println( "socks".substring( 0, 4 ) );
|
||||
System.out.println( "brooms".substring( 1, 5 ) );
|
||||
// first, do this by selecting a specific substring
|
||||
// to exclude the first and last characters
|
||||
|
||||
System.out.println( "knight".replaceAll( "^.", "" ) );
|
||||
System.out.println( "socks".replaceAll( ".$", "" ) );
|
||||
System.out.println( "brooms".replaceAll( "^.|.$", "" ) );
|
||||
// then do this using a regular expressions
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
alert("knight".slice(1)); // strip first character
|
||||
alert("socks".slice(0, -1)); // strip last character
|
||||
alert("brooms".slice(1, -1)); // strip both first and last characters
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
julia> "My String"[2:end] #without first character
|
||||
"y String"
|
||||
|
||||
julia> "My String"[1:end-1] #without last character
|
||||
"My Strin"
|
||||
|
||||
julia> chop("My String") #alternate remove last character
|
||||
"My Strin"
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
string$ = "Rosetta Code"
|
||||
Print Mid$(string$, 2)
|
||||
Print Left$(string$, (Len(string$) - 1))
|
||||
Print Mid$(string$, 2, (Len(string$) - 2))
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
10 a$="knight":b$="socks":c$="brooms"
|
||||
20 PRINT MID$(a$,2)
|
||||
30 PRINT LEFT$(b$,LEN(b$)-1)
|
||||
40 PRINT MID$(c$,2,LEN(c$)-2)
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
print (string.sub("knights",2)) -- remove the first character
|
||||
print (string.sub("knights",1,-2)) -- remove the last character
|
||||
print (string.sub("knights",2,-2)) -- remove the first and last characters
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
% String with first character removed
|
||||
str(2:end)
|
||||
% String with last character removed
|
||||
str(1:end-1)
|
||||
% String with both the first and last characters removed
|
||||
str(2:end-1)
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
> s := "some string":
|
||||
> s[2..-1];
|
||||
"ome string"
|
||||
|
||||
> s[1..-2];
|
||||
"some strin"
|
||||
|
||||
> s[2..-2];
|
||||
"ome strin"
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
> substring( s, 2 .. -1 );
|
||||
"ome string"
|
||||
|
||||
> substring( s, 1 .. -2 );
|
||||
"some strin"
|
||||
|
||||
> substring( s, 2 .. -2 );
|
||||
"ome strin"
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
> use StringTools in
|
||||
> SubString( s, 2 .. -1 );
|
||||
> SubString( s, 1 .. -1 );
|
||||
> SubString( s, 2 .. -2 )
|
||||
> end use;
|
||||
"ome string"
|
||||
|
||||
"some string"
|
||||
|
||||
"ome strin"
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
StringDrop["input string",1]
|
||||
StringDrop["input string",-1]
|
||||
StringTake["input string",{2,-2}]
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
using System;
|
||||
using System.Console;
|
||||
|
||||
module RemoveChars
|
||||
{
|
||||
Main() : void
|
||||
{
|
||||
def str = "*A string*";
|
||||
def end = str.Remove(str.Length - 1); // from pos to end
|
||||
def beg = str.Remove(0, 1); // start pos, # of chars to remove
|
||||
def both = str.Trim(array['*']); // with Trim() you need to know what char's you're removing
|
||||
|
||||
WriteLine($"$str -> $beg -> $end -> $both");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
let strip_first_char str =
|
||||
if str = "" then "" else
|
||||
String.sub str 1 ((String.length str) - 1)
|
||||
|
||||
let strip_last_char str =
|
||||
if str = "" then "" else
|
||||
String.sub str 0 ((String.length str) - 1)
|
||||
|
||||
let strip_both_chars str =
|
||||
match String.length str with
|
||||
| 0 | 1 | 2 -> ""
|
||||
| len -> String.sub str 1 (len - 2)
|
||||
|
||||
let () =
|
||||
print_endline (strip_first_char "knight");
|
||||
print_endline (strip_last_char "socks");
|
||||
print_endline (strip_both_chars "brooms");
|
||||
;;
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
bundle Default {
|
||||
class TopTail {
|
||||
function : Main(args : System.String[]) ~ Nil {
|
||||
string := "test";
|
||||
string->SubString(1, string->Size() - 1)->PrintLine();
|
||||
string->SubString(string->Size() - 1)->PrintLine();
|
||||
string->SubString(1, string->Size() - 2)->PrintLine();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
df(s)=concat(vecextract(Vec(s),1<<#s-2));
|
||||
dl(s)=concat(vecextract(Vec(s),1<<(#s-1)-1));
|
||||
db(s)=concat(vecextract(Vec(s),1<<(#s-1)-2));
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
<?php
|
||||
echo substr("knight", 1), "\n"; // strip first character
|
||||
echo substr("socks", 0, -1), "\n"; // strip last character
|
||||
echo substr("brooms", 1, -1), "\n"; // strip both first and last characters
|
||||
?>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
declare s character (100) varying;
|
||||
s = 'now is the time to come to the aid of the party';
|
||||
if length(s) <= 2 then stop;
|
||||
put skip list ('First character removed=' || substr(s,2) );
|
||||
put skip list ('Last character removed=' || substr(s, 1, length(s)-1) );
|
||||
put skip list ('One character from each end removed=' ||
|
||||
substr(s, 2, length(s)-2) );
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
say substr('knight', 1); # strip first character - sub
|
||||
say 'knight'.substr(1); # strip first character - method
|
||||
|
||||
say substr('socks', 0, -1); # strip last character - sub
|
||||
say 'socks'.substr( 0, -1); # strip last character - method
|
||||
|
||||
say substr('brooms', 1, -1); # strip both first and last characters - sub
|
||||
say 'brooms'.substr(1, -1); # strip both first and last characters - method
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
my $string = 'ouch';
|
||||
say $string.chop; # ouc - does not modify original $string
|
||||
say $string; # ouch
|
||||
say $string.p5chop; # h - returns the character chopped off and modifies $string
|
||||
say $string; # ouc
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
print substr("knight",1), "\n"; # strip first character
|
||||
print substr("socks", 0, -1), "\n"; # strip last character
|
||||
print substr("brooms", 1, -1), "\n"; # strip both first and last characters
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
$string = 'ouch';
|
||||
$bits = chop($string); # The last letter is returned by the chop function
|
||||
print $bits; # h
|
||||
print $string; # ouc # See we really did chop the last letter off
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
: (pack (cdr (chop "knight"))) # Remove first character
|
||||
-> "night"
|
||||
|
||||
: (pack (head -1 (chop "socks"))) # Remove last character
|
||||
-> "sock"
|
||||
|
||||
: (pack (cddr (rot (chop "brooms")))) # Remove first and last characters
|
||||
-> "room"
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
remove_first_last_chars :-
|
||||
L = "Rosetta",
|
||||
L = [_|L1],
|
||||
remove_last(L, L2),
|
||||
remove_last(L1, L3),
|
||||
writef('Original string : %s\n', [L]),
|
||||
writef('Without first char : %s\n', [L1]),
|
||||
writef('Without last char : %s\n', [L2]),
|
||||
writef('Without first/last chars : %s\n', [L3]).
|
||||
|
||||
remove_last(L, LR) :-
|
||||
reverse(L, [_ | L1]),
|
||||
reverse(L1, LR).
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
If OpenConsole()
|
||||
PrintN(Right("knight", Len("knight") - 1)) ;strip the first letter
|
||||
PrintN(Left("socks", Len("socks")- 1)) ;strip the last letter
|
||||
PrintN(Mid("brooms", 2, Len("brooms") - 2)) ;strip both the first and last letter
|
||||
|
||||
Print(#CRLF$ + #CRLF$ + "Press ENTER to exit"): Input()
|
||||
CloseConsole()
|
||||
EndIf
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
print "knight"[1:] # strip first character
|
||||
print "socks"[:-1] # strip last character
|
||||
print "brooms"[1:-1] # strip both first and last characters
|
||||
20
Task/Substring-Top-and-tail/REXX/substring-top-and-tail.rexx
Normal file
20
Task/Substring-Top-and-tail/REXX/substring-top-and-tail.rexx
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
/*REXX program to show removal of 1st/last/1st&last chars from a string.*/
|
||||
|
||||
z = 'abcdefghijk'
|
||||
|
||||
say ' the original string =' z
|
||||
say 'string first character removed =' substr(z,2)
|
||||
say 'string last character removed =' left(z,length(z)-1)
|
||||
say 'string first & last character removed =' substr(z,2,length(z)-2)
|
||||
exit
|
||||
/* ┌───────────────────────────────────────────────┐
|
||||
│ however, the original string may be null, │
|
||||
│ or of insufficient length which may cause the │
|
||||
│ BIFs to fail (because of negative length). │
|
||||
└───────────────────────────────────────────────┘ */
|
||||
|
||||
say ' the original string =' z
|
||||
say 'string first character removed =' substr(z,2)
|
||||
say 'string last character removed =' left(z,max(0,length(z)-1))
|
||||
say 'string first & last character removed =' substr(z,2,max(0,length(z)-2))
|
||||
/*stick a fork in it,we're done.*/
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
#lang racket
|
||||
|
||||
(define str "ストリング")
|
||||
|
||||
(substring str 1)
|
||||
(substring str 0 (sub1 (string-length str)))
|
||||
(substring str 1 (sub1 (string-length str)))
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
puts "knight"[1..-1] # strip first character
|
||||
puts "socks"[0..-2] # strip last character
|
||||
puts "socks".chop # alternate way to strip last character
|
||||
puts "brooms"[1..-2] # strip both first and last characters
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
s$ = "Run BASIC"
|
||||
print mid$(s$,2) 'strip first
|
||||
print left$(s$,len(s$) -1) 'strip last
|
||||
print mid$(s$,2,len(s$) -2) 'strip first and last
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
"knight" len(1) rem . output ;* strip first character
|
||||
"socks" rtab(1) . output ;* strip last character
|
||||
"brooms" len(1) rtab(1) . output ;* strip both first and last characters
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
println("knight" tail) // strip first character
|
||||
println("socks" dropRight 1) // strip last character
|
||||
println("brooms".tail dropRight 1) // strip both first and last characters
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
$ include "seed7_05.s7i";
|
||||
|
||||
const proc: main is func
|
||||
local
|
||||
const string: stri is "upraisers";
|
||||
begin
|
||||
writeln("Full string: " <& stri);
|
||||
writeln("Without first: " <& stri[2 ..]);
|
||||
writeln("Without last: " <& stri[.. pred(length(stri))]);
|
||||
writeln("Without both: " <& stri[2 .. pred(length(stri))]);
|
||||
end func;
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
$$ MODE TUSCRIPT
|
||||
str="upraisers"
|
||||
str1=EXTRACT (str,2,0)
|
||||
str2=EXTRACT (str,0,-1)
|
||||
str3=EXTRACT (str,2,-1)
|
||||
PRINT str
|
||||
PRINT str1
|
||||
PRINT str2
|
||||
PRINT str3
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
puts [string range "knight" 1 end]; # strip first character
|
||||
puts [string range "write" 0 end-1]; # strip last character
|
||||
puts [string range "brooms" 1 end-1]; # strip both first and last characters
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
#!/bin/zsh
|
||||
str='abcdefg'
|
||||
echo ${str#?} # Remove first char
|
||||
echo ${str%?} # Remove last char
|
||||
echo ${${str#?}%?} # Remove first & last chars
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
// declare test string
|
||||
string s = "Hello, world!";
|
||||
// remove first letter
|
||||
string s_first = s[1:s.length];
|
||||
//remove last letter
|
||||
string s_last = s[0:s.length - 1];
|
||||
// remove first and last letters
|
||||
string s_first_last = s[1:s.length - 1];
|
||||
12
Task/Substring-Top-and-tail/XPL0/substring-top-and-tail.xpl0
Normal file
12
Task/Substring-Top-and-tail/XPL0/substring-top-and-tail.xpl0
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
include c:\cxpl\stdlib;
|
||||
char S, P;
|
||||
[S:= "Smiles";
|
||||
Text(0, S+1); \first character removed
|
||||
CrLf(0);
|
||||
P:= S + StrLen(S) - 2; \point to last character in string
|
||||
P(0):= P(0) ! $80; \set the MSb on the last character
|
||||
Text(0, S); \last character removed
|
||||
CrLf(0);
|
||||
Text(0, S+1); \first and last characters removed
|
||||
CrLf(0);
|
||||
]
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
10 PRINT FN f$("knight"): REM strip the first letter
|
||||
20 PRINT FN l$("socks"): REM strip the last letter
|
||||
30 PRINT FN b$("brooms"): REM strip both the first and last letter
|
||||
100 STOP
|
||||
|
||||
9000 DEF FN f$(a$)=a$(2 TO LEN(a$))
|
||||
9010 DEF FN l$(a$)=a$(1 TO LEN(a$)-(1 AND (LEN(a$)>=1)))
|
||||
9020 DEF FN b$(a$)=FN l$(FN f$(a$))
|
||||
Loading…
Add table
Add a link
Reference in a new issue