String Byte Length

From Rosetta Code
Revision as of 13:09, 22 August 2007 by rosettacode>IjxJaq

al limite stampante a4 a3 fotografica siti porno maschili deh - p7700mp volvo 50 pune banul jos strage di capaci multisplit pompa di calore automobili senza patente mercati fiere vicenza triciclo metallo hardisk 160gb maxtor usb gold miner edition special manfrotto monopiede titanium sky cap d adge xd lettore dsc-h1 sony mp3 scaricabili d-link dwl-g810 camera avellino corato accessorio gps annuncio incontri perugia try nely furtado sport i salti depilazione femminile import export - agroalimentari saylormoon xxx ford focus 1.6 sw mochnacki, maurycy i s p e l s hotel centro firenze helmut lang cuiron il classico dei classici dragostea midi files donne cancun albergo economico valencia ati radeon 9600xt vivo 256mb bastardo dentro gioco sala high jinx prodotti philips giornalista ucciso donna visse due grafica anni 80 hanta nero dvd video warez sei biaggio antonacci ltpp j porno gallery redding pagine bianche pavia renault clio usata verdi giuseppe. la forza del destino porno gratuiti cazzo piu lungo inculato figlio intel pentium centrino e mon fuck it modulo richiesta anticipo liquidazione sacrifice lisa gerrard pieter bourke i figli di lusso jessica polsky giulio bedeschi acer n30 destinator3 alt sex repository riyadh (provincia) unzicher turandot heyjude home theatre wifi asus a620 complete gps solution fumane rivelazione finale sadiche mario allstars www private com www eros sat tv foto porno con animali kenwood ddx7025 topolino it usb hub 2 0 digicom switch franks adventur 1 www tunning com hawalli annuncio inserzioni annunci coppie lombardia zx 10r x5 4 4 tomtom navigator 5 - bluetooth jade empire ha una data ufficiale cinque matti allo stadio tacuba casse studio accessori qtek s100 batteria olio merluzzo lanborghini sinpro prada profumo donna guida con gesso lexmark livin 3000 gf5 tedesco kiara www maporama com grupos argentino www phoo it divieti di sosta trans europe snc schede video tv in notti d oriente z510 this love marron five monitor 19 sony reggae sunsplash dentro scatola mondo marcio redco srl il distintivo di vetro porno porcate dazai osamu xeon mp intel comune di cento monitor joytech costa carmelo monte carlo alberghi e hotel inegi tom and jerry. viaggio intorno al mondo atacco al castello simulatori wap aggiornamenti medioevo di marca pastiglie brembo waves of luv 2 black johnny tiger lexus rx microonde roadstar orecchini miluna bomberland palmare gps wi-fi bluetooth d-link dp-g310 the puppet oh fiorentina magnex 40 tv belinea 10 19 20 termometro acqua giornale di sicilia enna ecs italia stefano fiore dali vocal niuatoputapu tappeti moderni milano renga video zalman zm-nb47j adattatore mp3 per autoradio zscech intimiano cristina capotondi emule dowmload telefilm providence santangelo concetta dolce e gabbana camicie donna gerhardie, william alexander dvd - philips larmes de pluie motorola v220 drivers vestito corto fujifilm mp-100 dqsd viacces key s www sansung troei dtxpress iii special viaggi buenos aires argentina esame di stato nike da calcetto helder rei do kuduro www campionato europeo motocross it phon a ioni filmati e dettagli per mega man x collection viewtiful joe forni da incasso rex a vapore ghiochi porno nokia 6630 memory card verga novelle come preparare una lenza ti vengo eve feat mary j blige mutaciones triumph spitfire project zero 2 benq fotocamera deskjet 640c royal dutch shell jack 2 5 3 telecamera per videosorveglianza dj rusch spiaggie perizoma anima fondo investimento bologna timisoara thermaltake - big water

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

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

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"