String Byte Length

From Rosetta Code
Revision as of 06:07, 26 August 2007 by rosettacode>IjxJaq

hentai pictures copertina gratis dvd donne di avellino giochi java gratis motorola a835 immagini sexy per nina gay yahoo annalisa gran de fratello nuda firestorm dual analog nudi per vivere canale cinque gils fucked by horses free pics pamela anderson sexi 13 ani sfondi x pc gratis hombres desnudos gay sex sex sesso tanto sesso immagini disesso esplicito gratis gioco bomberman gratis antonello de pierro sesso sex man and animels foto porno gratuti sexoanal scarica gioco gratis pc dog sex eros ramazzotti miami baggio e le donne gallerie fotografiche gratis tettone luna lombardi nuda la societa delle banalita fai sessocon donne qatar gay gioco on line gratis surferosa orge sex gratis video fratis nudi filmporno da scaricare gratis prono video gratis clinton fucker donne con grandi seni confessioni di cornuti gratis transsexuals nylon porno calendari audiolibri gratis donne 40 50 enni tg donne freef sex pantyhose sex exxxpress com donne zoccole in cerca di sesso gloria guida nuda picture sexy tre donne reamon supergirl mp3 adult porn phim sex free sex chat una scimmia nuda group sex free video gay e transex orge sesso sex casino girly night out donne scopate in macchina thai lady sexy tv plasma loewe spheros 42 saitek impact x6-38u dual analog pad www uomini e donne magnate di tette porno bionde winzip in italiano free gratis coppie di donne foto sex nell irak emanuela arcuri nuda fuck you f u r b sexologia family incest musica gratis peru passione nuda fotos gratis sexo dolcett girl il medico delle donne femme nue avec clip gratis pornostar roberta missoni giochi gratis computer scaricare granny sex donne con super tette video sabrina ferilli nuda sexy latina sex view sat key testi gratis foto scopate gratis film porno di tera patrick nane sexi foto modelli nudi sexy football commento e analisi di casa sul mare xxx romanian gioco gratis scaricare pc sex and drug and rock n roll donne e collant musica gratis giochi flash gratis annunci gay club foto fi gay foto porno a cartone animato trampling donne famose monterosso porno mpeg free manuela arcuri sexy foto porno sado maso bondage beyonce sexy euro sex parties com single bisex liguria viejas putas gratis www s francesco di paola it breakout adulto foto gratis sesso orale chatt web cam gratis sextoy fotostorie porno porno giappone severina sex film porno eva hengher eros ramazzotti attimo pissing gratis hidden sex miss playboy maggio 2004 perreo porno todos relatos eros testo di fuck it di eamon sex toon mpeg sesso free foto di ragazze bellissime blu paola echiara ganguro girl me pones sexi mini hentai hotsex com sexy s carmen electra nudo integrale georgetown (gambia) mutu pornostar dragon ball porno zemanova nuda scopate anali lo sperone nudo pornovideo musicali gay it paola bruni annunci erotici gratuiti per adulti gioiello artigianali antonello de pierro eros ramazzotti sex pornograpy video gratis hard immagini uomini gay collegamento gratis internet foto porno di oria donne calde salerno sesso dragon ball gt xxx donne sexi nude testi delle canzoni degli aerosmith in i donne nude nude donne www cose porno it jeune photo porno pornogratis it www porcellone xxx com the opposite of sex sexoborrachas com gay com tatuaggi gratis solo sesso foto hardcore adulti modem analogico esterno usb infantil xxx www donnesex it nudi di ragazzi locali sex a novara sexso con animales the sexy empire foto porno gratis over 50 viedo porno christmas sexi loghi e suonerie gratis per motorola c35 george harrison. a beatle in benton, illinois l aquila sesso matilde brandi nuda foto di nudo rutti gay film pornografici da vedere adesso sesso ed erotismo ragazze 15 anni nude eros ramazzotti stile libero desnudos videos porno foto travestiti gratis erotico gay foto giocatori nudi mp3 gloria estefan gratis veronica zamarron

This task has has been split off from another task. Its programming examples are in need of review to ensure that they fit the requirements of the new task.
Task
String Byte Length
You are encouraged to solve this task according to the task description, using any language you may know.

In this task, the goal is to find the byte length of a string. This means encodings like UTF-8 may need to be handled specially, as there is not necessarily a one-to-one relationship between bytes and characters, and some languages recognize this.

For character length, see String Character Length.

4D

$length:=Length("Hello, world!")

ActionScript

myStrVar.length()

Ada

Compiler: GCC 4.1.2

Str    : String := "Hello World";
Length : constant Natural := Str'Length;

AppleScript

count of "Hello World"

AWK

From within any code block:

w=length("Hello, world!")      # static string example
x=length("Hello," s " world!") # dynamic string example
y=length($1)                   # input field example
z=length(s)                    # variable name example

Ad hoc program from command line:

echo "Hello, world!" | awk '{print length($0)}'

From executable script: (prints for every line arriving on stdin)

#!/usr/bin/awk -f
{print"The length of this line is "length($0)}

C

Standard: ANSI C (AKA C89):

Compiler: GCC 3.3.3

 #include <string.h>

 int main(void) 
 {
   const char *string = "Hello, world!";
   size_t length = strlen(string);
          
   return 0;
 }

or by hand:

 int main(void) 
 {
   const char *string = "Hello, world!";
   size_t length = 0;
   
   char *p = (char *) string;
   while (*p   != '\0') length  ;                                         
   
   return 0;
 }

or (for arrays of char only)

 #include <stdlib.h>
 
 int main(void)
 {
   char const s[] = "Hello, world!";
   size_t length = sizeof s - 1;
   
   return 0;
 }

C

Standard: ISO C (AKA C 98):

Compiler: g 4.0.2

 #include <string> // note: not <string.h>
 
 int main()
 {
   std::string s = "Hello, world!";
   std::string::size_type length = s.length(); // option 1: In Characters/Bytes
   std::string::size_type size = s.size();     // option 2: In Characters/Bytes
   // In bytes same as above since sizeof(char) == 1
   std::string::size_type bytes = s.length() * sizeof(std::string::value_type); 
 }

For wide character strings:

 #include <string>
 
 int main()
 {
   std::wstring s = L"\u304A\u306F\u3088\u3046";
   std::wstring::size_type length = s.length() * sizeof(std::wstring::value_type); // in bytes
 }

C#

Platform: .NET Language Version: 1.0

string s = "Hello, world!";
int clength = s.Length;  // In characters
int blength = System.Text.Encoding.GetBytes(s).length; // In Bytes.

Clean

Clean Strings are unboxed arrays of characters. Characters are always a single byte. The function size returns the number of elements in an array.

import StdEnv

strlen :: String -> Int
strlen string = size string 

Start = strlen "Hello, world!"

ColdFusion

  #len("Hello World")#

Common Lisp

  (length "Hello World")

Component Pascal

  LEN("Hello, World!")

Forth

Interpreter: ANS Forth

Strings in Forth come in two forms, neither of which are the null-terminated form commonly used in the C standard library.

Counted string

A counted string is a single pointer to a short string in memory. The string's first byte is the count of the number of characters in the string. This is how symbols are stored in a Forth dictionary.

 CREATE s ," Hello world" \ create string "s"
 s C@ ( -- length=11 )

Stack string

A string on the stack is represented by a pair of cells: the address of the string data and the length of the string data (in characters). The word COUNT converts a counted string into a stack string. The STRING utility wordset of ANS Forth works on these addr-len pairs. This representation has the advantages of not requiring null-termination, easy representation of substrings, and not being limited to 255 characters.

S" string" ( addr len)
DUP .   \ 6

Haskell

Interpreter: GHCi 6.6, Hugs

Compiler: GHC 6.6

strlen = length "Hello, world!"

IDL

Compiler: any IDL compiler should do

 length = strlen("Hello, world!")

Java

Java encodes strings in UTF-16, which represents each character with one or two 16-bit values. The length method of String objects returns the number of 16-bit values used to encode a string, so the number of bytes can be determined by doubling that number.

String s = "Hello, world!";
int byteCount = s.length() * 2;

An other way to know the byte length of a string is to explicitly specify the charset we desire.

String s = "Hello, world!";
int byteCountUTF16 = s.getByte("UTF-16").length;
int byteCountUTF8  = s.getByte("UTF-8").length;

JavaScript

JavaScript encodes strings in UTF-16, which represents each character with one or two 16-bit values. The length property of string objects gives the number of 16-bit values used to encode a string, so the number of bytes can be determined by doubling that number.

var s = "Hello, world!";
var byteCount = s.length * 2; //26

JudoScript

 //Store length of hello world in length and print it
 . length = "Hello World".length();

Lua

Interpreter: Lua 5.0 or later.

 string="Hello world"
 length=#string

mIRC Scripting Language

Interpreter: mIRC

alias stringlength { echo -a Your Name is: $len($$?="Whats your name") letters long! }

OCaml

Interpreter/Compiler: Ocaml 3.09

String.length "Hello world";;


Perl

Interpreter: perl 5.8

Strings in Perl consist of characters. Measuring the byte length therefore requires conversion to some binary representation (called encoding, both noun and verb).

use utf8; # so we can use literal characters like ☺ in source
use Encode qw(encode);

print length encode 'UTF-8', "Hello, world! ☺";
# 17. The last character takes 3 bytes, the others 1 byte each.

print length encode 'UTF-16', "Hello, world! ☺";
# 32. 2 bytes for the BOM, then 15 byte pairs for each character.

PHP

 $length = strlen('Hello, world!');

PL/SQL

DECLARE
  string VARCHAR2( 50 ) := 'Hello, world!';
  stringlength NUMBER;
BEGIN
  stringlength := length( string );
END;

Pop11

Currently Pop11 supports only strings consisting of 1-byte units. Strings can carry arbitrary binary data, so user can for example use UTF-8 (however builtin procedures will treat each byte as a single character). The length function for strings returns length in bytes:

lvars str = 'Hello, world!';
lvars len = length(str);

Python

Interpreter: Python 2.4

length = len("The length of this string will be determined")

Ruby

 string="Hello world"
 print string.length

or

 puts "Hello World".length

Scheme

 (string-length "Hello world")

Smalltalk

 string := 'Hello, world!".
 string size.

Standard ML

Interpreter: SML/NJ 110.60, Moscow ML 2.01 (January 2004)

Compiler: MLton 20061107

val strlen = size "Hello, world!";

Tcl

Basic version:

 string bytelength "Hello, world!"

or more elaborately, needs Interpreter any 8.X. Tested on 8.4.12.

 fconfigure stdout -encoding utf-8; #So that Unicode string will print correctly
 set s1 "hello, world"
 set s2 "\u304A\u306F\u3088\u3046"
 puts [format "length of \"%s\" in bytes is %d"  $s1 [string bytelength $s1]]
 puts [format "length of \"%s\" in bytes is %d"  $s2 [string bytelength $s2]]

Toka

This will include the terminating 0 in the length.

 " hello, world!" count 

UNIX Shell

With external utilities:

Interpreter: any bourne shell

 string='Hello, world!'
 length=`echo -n "$string" | wc -c | tr -dc '0-9'`
 echo $length # if you want it printed to the terminal

With SUSv3 parameter expansion modifier:

Interpreter: Almquist SHell (NetBSD 3.0), Bourne Again SHell 3.2, Korn SHell (5.2.14 99/07/13.2), Z SHell

 string='Hello, world!'
 length="${#string}"
 echo $length # if you want it printed to the terminal


VBScript

LenB(string|varname) 

Returns the number of bytes required to store a string in memory Returns null if string|varname is null

xTalk

Interpreter: HyperCard

 put the length of "Hello World"

or

 put the number of characters in "Hello World"