Programming-Idioms

New implementation

Be concise.

Be useful.

All contributions dictatorially edited by webmasters to match personal tastes.

Please do not paste any copyright violating resource.

Please try to avoid dependencies to third-party libraries and frameworks.

Other implementations
#include <stdlib.h>
#include <string.h>
char *strrev(char *s)
{
	size_t len = strlen(s);
	char *rev = malloc(len + 1);

	if (rev) {
		char *p_s = s + len - 1;
		char *p_r = rev;

		for (; len > 0; len--)
			*p_r++ = *p_s--;
		*p_r = '\0';
	}
	return rev;
}
(let [s "hello"
      t (apply str (reverse s))]
  t)
IDENTIFICATION DIVISION.
PROGRAM-ID. reverse string.
PROCEDURE DIVISION.
    MOVE FUNCTION REVERSE(s) TO t
STOP RUN.
std::string s("Example");
std::string t;
std::copy(s.crbegin(), s.crend(), std::back_inserter(t));
char[] charArray = s.ToCharArray();
Array.Reverse(charArray);
string t = new string(charArray);
import std.range, std.array;
auto t = s.retro.array;
var t = new String.fromCharCodes(s.runes.toList().reversed);
var t = s.split('').reversed.join();

t = String.reverse(s)
T = lists:reverse(S)
  character(len=:), allocatable :: t
  integer :: i, n

  allocate (t, mold=s)
  n = len(s)
  do i = 0, n - 1
     t(n-i : n-i) = s(i+1 : i+1)
  end do
runes := []rune(s)
for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
   runes[i], runes[j] = runes[j], runes[i]
}
t := string(runes)
t = reverse s :: String
var t = s.split("").reverse().join("");
String t = new StringBuilder(s).reverse().toString();
val t = s.reversed()
(reverse s)
function utf8.reverse(s)
	local r = ""
	for p,c in utf8.codes(s) do
		r = utf8.char(c)..r
	end
	return r
end

t = utf8.reverse(s)
@import Foundation;
NSMutableString *t=[NSMutableString string];
[s enumerateSubstringsInRange:NSMakeRange(0,s.length)
  options:NSStringEnumerationReverse|NSStringEnumerationByComposedCharacterSequences
  usingBlock:^(NSString *part, NSRange r1, NSRange r2, BOOL *stop) {
    [t appendString:part];
}];
for ($i=0;$i<mb_strlen($s);$i++) {
    $characters[] = mb_substr($s, $i, 1, 'UTF-8');
}

$characters = array_reverse($characters);
$t = implode($characters);
function reverse(const str: string): string;
var
  i, j: Integer;
begin
  j := length(str);
  setlength(reverse, j);
  for i := 1 to j do
    reverse[i] := str[j - i + 1];
end;
Function ReverseString(const AText: string): string;
var
    i,j:longint;
begin
  setlength(result,length(atext));
  i:=1; j:=length(atext);
  while (i<=j) do
    begin
      result[i]:=atext[j-i+1];
      inc(i);
    end;
end;
my $s = 'cafe' . "\N{COMBINING ACUTE ACCENT}";
my $t = join '', reverse $s =~ /\X/g;
t = s[::-1]
t = s.decode('utf8')[::-1].encode('utf8')
t = s.reverse
let t = s.chars().rev().collect::<String>();
let t: String = s.chars().rev().collect();
s.reverse
Dim string_t = StrReverse(string_s)