String Byte Length: Difference between revisions

From Rosetta Code
Content added Content deleted
mNo edit summary
m (Stupid case-sensitivity.)
 
(41 intermediate revisions by 13 users not shown)
Line 1: Line 1:
#REDIRECT [[String length]]
[http://trumanburb.ifrance.com/view/new/sony-vaio.htm sony vaio pocket] [http://gabe95.ifrance.com/html/lamante-del/ lamante del torero] [http://joshuaw-wise.ifrance.com/img/styles/kodak-print/ kodak print dock] [http://zeakk.ifrance.com/resources/articles/testi-gemelli.htm testi gemelli diversi] [http://krychan.ifrance.com/content/view/panasonic-dmcfz.htm panasonic dmc-fz20] [http://cocopuff66.ifrance.com/text/directory/mercedes-b/ mercedes b chrome] [http://lekusya.ifrance.com/library/html/amare-e/ amare e] [http://horcrionebay.ifrance.com/resources/articles/www-magic.htm www magic it] [http://alishca-st.ifrance.com/text/directory/mitsubishi-l.htm mitsubishi l200 double cab] [http://zeakk.ifrance.com/resources/articles/ssst-ch.htm ssst ch] [http://flawedamythyst.ifrance.com/img/styles/motorola-v.htm motorola v300 silver] [http://call-shotgun.ifrance.com/view/new/thermaltake-giant/ thermaltake giant 3] [http://alishca-st.ifrance.com/text/directory/www-scherzi.htm www scherzi hallowen it] [http://call-shotgun.ifrance.com/view/new/mary-kate/ mary kate olson] [http://lekusya.ifrance.com/library/html/stabilimenti-balneari/ stabilimenti balneari in sicilia] [http://atrayah.ifrance.com/topic/no-al.htm no al fumo foto] [http://gabe95.ifrance.com/html/lucane/ lucane] [http://smegmacheez.ifrance.com/content/view/lavoro-casa/ lavoro casa] [http://gabe95.ifrance.com/html/ragha-v/ ragha v] [http://call-shotgun.ifrance.com/view/new/iq/ i.q.] [http://krychan.ifrance.com/content/view/mediovale.htm mediovale] [http://atrayah.ifrance.com/topic/palestre-di.htm palestre di fitness provincia di torino] [http://gabe95.ifrance.com/html/accessori-canon/ accessori canon usb powershot] [http://smegmacheez.ifrance.com/content/view/tempest/ tempest] [http://gabe95.ifrance.com/html/casaccia-gabriel/ casaccia, gabriel] [http://gabe95.ifrance.com/html/cronaca-di/ cronaca di un amore violato] [http://gajar.ifrance.com/html/tomaso-d.htm tomaso d aquino libri] [http://lekusya.ifrance.com/library/html/gstaad/ gstaad] [http://krychan.ifrance.com/content/view/terratec-phase.htm terratec phase 24] [http://trumanburb.ifrance.com/view/new/amore-segreto.htm amore segreto] [http://smegmacheez.ifrance.com/content/view/seagate-cheetah/ seagate cheetah 15k] [http://joshuaw-wise.ifrance.com/img/styles/pucusana/ pucusana] [http://cocopuff66.ifrance.com/text/directory/navigatore-palmare/ navigatore palmare gps] [http://mfirishka.ifrance.com/view/new/ripi.htm ripi] [http://squoi-oop.ifrance.com/topic/royal-canin/ royal canin sensible] [http://call-shotgun.ifrance.com/view/new/parcheggi-milano/ parcheggi milano] [http://gajar.ifrance.com/html/desiderio-proibito.htm desiderio proibito] [http://horcrionebay.ifrance.com/resources/articles/ridin-on.htm ridin on l n] [http://krychan.ifrance.com/content/view/sporting-clube.htm sporting clube de portugal] [http://krychan.ifrance.com/content/view/la-doppia.htm la doppia morte] [http://sm4.ifrance.com/lib/frigoriferi-da/ frigoriferi da 140 litri] [http://call-shotgun.ifrance.com/view/new/puma-repli/ puma repli cat mid] [http://gabe95.ifrance.com/html/site-iran/ site iran] [http://smegmacheez.ifrance.com/content/view/alaska-fishing/ alaska fishing lodge] [http://joshuaw-wise.ifrance.com/img/styles/batteria-hp/ batteria hp pavilion] [http://lekusya.ifrance.com/library/html/beyblade/ beyblade] [http://call-shotgun.ifrance.com/view/new/l-uccisione/ l uccisione di baldoni] [http://mfirishka.ifrance.com/view/new/concorsi-architetti.htm concorsi architetti] [http://gabe95.ifrance.com/html/canon-eos/ canon eos 1n] [http://mfirishka.ifrance.com/view/new/spartito-silenzio.htm spartito silenzio d ordinanza] [http://gajar.ifrance.com/html/stacies-mom.htm stacies mom] [http://sm4.ifrance.com/lib/gf-concorrenti/ gf5 concorrenti] [http://lightmyfire0214.ifrance.com/topic/ideo-porno/ ideo porno gratis] [http://squoi-oop.ifrance.com/topic/design-software/ design software] [http://gabe95.ifrance.com/html/ferro-da/ ferro da stiro philips] [http://squoi-oop.ifrance.com/topic/cavo-advance/ cavo advance] [http://alishca-st.ifrance.com/text/directory/animotion.htm animotion] [http://dejablu503.ifrance.com/description/lib/david-gilmour.htm david gilmour in concert] [http://zeakk.ifrance.com/resources/articles/mai-a.htm mai a] [http://horcrionebay.ifrance.com/resources/articles/obiettivi-af.htm obiettivi af 80- nikon] [http://nokros.ifrance.com/data/anemometri/ anemometri] [http://smegmacheez.ifrance.com/content/view/scarlet-ribbons/ scarlet ribbons midi] [http://sm4.ifrance.com/lib/sexy-report/ sexy report] [http://lightmyfire0214.ifrance.com/topic/videoproiettore-lcd/ videoproiettore lcd] [http://horcrionebay.ifrance.com/resources/articles/mia-nonna.htm mia nonna poliziotto] [http://gabe95.ifrance.com/html/riassunto-canto/ riassunto canto 17 paradiso] [http://alishca-st.ifrance.com/text/directory/langreo.htm langreo] [http://mfirishka.ifrance.com/view/new/serge-reggiani.htm serge reggiani] [http://mfirishka.ifrance.com/view/new/chaplin-collection.htm chaplin collection] [http://mfirishka.ifrance.com/view/new/san-gimignano.htm san gimignano bed and breakfast] [http://atrayah.ifrance.com/topic/ddr-registered.htm ddr registered] [http://gabe95.ifrance.com/html/remote-zen/ remote zen] [http://zeakk.ifrance.com/resources/articles/dance.htm dance 2] [http://lightmyfire0214.ifrance.com/topic/semler/ semler] [http://nokros.ifrance.com/data/james-caan/ james caan] [http://gabe95.ifrance.com/html/lezioni-di/ lezioni di scuola guida] [http://alishca-st.ifrance.com/text/directory/dar-unde.htm dar unde] [http://gabe95.ifrance.com/html/vendita-campeggi/ vendita campeggi] [http://dejablu503.ifrance.com/description/lib/cantante-yugoslava.htm cantante yugoslava] [http://nokros.ifrance.com/data/concetto-di/ concetto di professione] [http://zeakk.ifrance.com/resources/articles/copytodvd.htm copytodvd] [http://alishca-st.ifrance.com/text/directory/kafka-la.htm kafka la metamorfosi riassunto] [http://zeakk.ifrance.com/resources/articles/video-de.htm video de dragostea din tea] [http://lekusya.ifrance.com/library/html/syncmaster-samsung/ syncmaster samsung] [http://sm4.ifrance.com/lib/la-gelataia/ la gelataia] [http://squoi-oop.ifrance.com/topic/gli-occhi/ gli occhi freddi della paura] [http://gajar.ifrance.com/html/sigmatek-xm.htm sigmatek xm-400 pro] [http://atrayah.ifrance.com/topic/nega-khan.htm nega khan] [http://flawedamythyst.ifrance.com/img/styles/il-complice.htm il complice segreto] [http://gabe95.ifrance.com/html/gocce-di/ gocce di memoria video giorgia] [http://flawedamythyst.ifrance.com/img/styles/ti-voglio.htm ti voglio bne] [http://smegmacheez.ifrance.com/content/view/lexmark/ lexmark 70] [http://trumanburb.ifrance.com/view/new/italiandreams-org.htm italiandreams org] [http://smegmacheez.ifrance.com/content/view/nickelback-see/ nickelback see you at the show] [http://squoi-oop.ifrance.com/topic/immagini-dragonball/ immagini dragonball porno] [http://trumanburb.ifrance.com/view/new/traduzioni-tedesco.htm traduzioni tedesco italiano] [http://zeakk.ifrance.com/resources/articles/torneo-di.htm torneo di wwe smackdown a milano] [http://nokros.ifrance.com/data/batteria-creative/ batteria creative] [http://lekusya.ifrance.com/library/html/yety-sports/ yety sports 3] [http://joshuaw-wise.ifrance.com/img/styles/bcl/ bcl2] [http://lekusya.ifrance.com/library/html/telefono-cordless/ telefono cordless siemens c200] [http://alishca-st.ifrance.com/text/directory/chat-non.htm chat non erotiche] [http://sm4.ifrance.com/lib/serena-garitta/ serena garitta lucignolo] [http://nokros.ifrance.com/data/hey-jude/ hey jude] [http://trumanburb.ifrance.com/view/new/screenplay.htm screenplay 7205] [http://gajar.ifrance.com/html/modena-fonderie.htm modena fonderie] [http://dejablu503.ifrance.com/description/lib/driver-motorola.htm driver motorola c332] [http://joshuaw-wise.ifrance.com/img/styles/peugeot-/ peugeot 206 xt] [http://smegmacheez.ifrance.com/content/view/ram/ ram 533] [http://nokros.ifrance.com/data/cdrw-slim/ cdrw slim] [http://call-shotgun.ifrance.com/view/new/televisori-plasma/ televisori plasma hd ready] [http://dejablu503.ifrance.com/description/lib/foto-torture.htm foto torture iraq] [http://sm4.ifrance.com/lib/hotel-argosy/ hotel argosy] [http://horcrionebay.ifrance.com/resources/articles/nikon-flash.htm nikon flash speedlight sb28] [http://squoi-oop.ifrance.com/topic/orlando-real/ orlando real estate] [http://zeakk.ifrance.com/resources/articles/cerla.htm cerla] [http://dejablu503.ifrance.com/description/lib/panasonic-fz.htm panasonic fz 30 fotocamera] [http://mfirishka.ifrance.com/view/new/il-diritto.htm il diritto positivo] [http://call-shotgun.ifrance.com/view/new/robot-da/ robot da cucina moulinex] [http://flawedamythyst.ifrance.com/img/styles/stampante-usb.htm stampante usb a3] [http://cocopuff66.ifrance.com/text/directory/auto-noleggio/ auto noleggio santiago de compostela] [http://nokros.ifrance.com/data/cover-lenny/ cover lenny kravitz baptism] [http://mfirishka.ifrance.com/view/new/i-simpson.htm i simpson - stagione 5] [http://trumanburb.ifrance.com/view/new/trust-k.htm trust 1210k] [http://atrayah.ifrance.com/topic/midnight-club.htm midnight club 3 dub edition] [http://mfirishka.ifrance.com/view/new/abbasso-tutti.htm abbasso tutti, viva noi] [http://mfirishka.ifrance.com/view/new/ad-quem.htm ad quem] [http://joshuaw-wise.ifrance.com/img/styles/foto-film/ foto film monica guerritore] [http://cocopuff66.ifrance.com/text/directory/bio-sam/ bio sam jako mlad] [http://lekusya.ifrance.com/library/html/raccoglitore/ raccoglitore] [http://alishca-st.ifrance.com/text/directory/seria-a.htm seria a] [http://flawedamythyst.ifrance.com/img/styles/bjork-libri.htm bjork libri] [http://lightmyfire0214.ifrance.com/topic/edgar-wallace/ edgar wallace racconta...] [http://call-shotgun.ifrance.com/view/new/the-night/ the night that panicked america] [http://nokros.ifrance.com/data/rivaz-alice/ rivaz, alice] [http://squoi-oop.ifrance.com/topic/c/ c60] [http://call-shotgun.ifrance.com/view/new/scsi-gb/ scsi 36gb] [http://gajar.ifrance.com/html/muta-sub.htm muta sub] [http://horcrionebay.ifrance.com/resources/articles/disco-radio.htm disco radio dance 2004] [http://horcrionebay.ifrance.com/resources/articles/modem-usb.htm modem usb isdn] [http://sm4.ifrance.com/lib/www-iperclub/ www iperclub it] [http://sm4.ifrance.com/lib/aquatrident-cpu/ aquatrident cpu water block] [http://cocopuff66.ifrance.com/text/directory/navigatori-satellitari/ navigatori satellitari tomtom go 300] [http://nokros.ifrance.com/data/stereo-usb/ stereo usb headset 250] [http://horcrionebay.ifrance.com/resources/articles/prova-a.htm prova a prendermi] [http://atrayah.ifrance.com/topic/eddie-guerrero.htm eddie guerrero t shirt] [http://lekusya.ifrance.com/library/html/il-colosso/ il colosso di fuoco] [http://squoi-oop.ifrance.com/topic/gorally/ gorally] [http://squoi-oop.ifrance.com/topic/www-aste/ www aste on line] [http://mfirishka.ifrance.com/view/new/canon-pixma.htm canon pixma ip-1500] [http://lightmyfire0214.ifrance.com/topic/nvidia-go/ nvidia go] [http://trumanburb.ifrance.com/view/new/vivavoce-per.htm vivavoce per auto nokia 6230] [http://lekusya.ifrance.com/library/html/donna-brasiliane/ donna brasiliane] [http://gabe95.ifrance.com/html/trovato-simone/ trovato simone] [http://atrayah.ifrance.com/topic/shinjitsu-no.htm shinjitsu no tobira] [http://gabe95.ifrance.com/html/anno-zero/ anno zero - guerra nello spazio] [http://joshuaw-wise.ifrance.com/img/styles/diario-segreto/ diario segreto] [http://joshuaw-wise.ifrance.com/img/styles/web-patente/ web patente quiz] [http://squoi-oop.ifrance.com/topic/dvd-recorder/ dvd recorder nero] [http://trumanburb.ifrance.com/view/new/doom-.htm doom 3 solo per windows 2000 e xp] [http://trumanburb.ifrance.com/view/new/dyna-blaster.htm dyna blaster] [http://atrayah.ifrance.com/topic/i-blues.htm i blues] [http://mfirishka.ifrance.com/view/new/prodotti-herbalife.htm prodotti herbalife] [http://nokros.ifrance.com/data/satis-faction/ satis faction mp3] [http://dejablu503.ifrance.com/description/lib/lg-.htm lg 7000 suoneria gratis] [http://joshuaw-wise.ifrance.com/img/styles/blondyneczka/ blondyneczka] [http://joshuaw-wise.ifrance.com/img/styles/www-cartoonx/ www cartoonx] [http://atrayah.ifrance.com/topic/vete-por.htm vete por donde llegaste] [http://joshuaw-wise.ifrance.com/img/styles/cuori-estranei/ cuori estranei] [http://joshuaw-wise.ifrance.com/img/styles/nannina/ nannina] [http://krychan.ifrance.com/content/view/yu-gi.htm yu gi oh roms] [http://call-shotgun.ifrance.com/view/new/alison-angel/ alison angel] [http://sm4.ifrance.com/lib/offerta-regali/ offerta regali cagliari] [http://krychan.ifrance.com/content/view/gruppi-di.htm gruppi di continuita ups] [http://dejablu503.ifrance.com/description/lib/couplex.htm couplex] [http://horcrionebay.ifrance.com/resources/articles/partecipazioni.htm partecipazioni] [http://mfirishka.ifrance.com/view/new/stampante-epson.htm stampante epson laser] [http://zeakk.ifrance.com/resources/articles/night-music.htm night music streets of madrid] [http://sm4.ifrance.com/lib/cop-target/ cop target. obiettivo poliziotto] [http://dejablu503.ifrance.com/description/lib/the-romp.htm the romp] [http://squoi-oop.ifrance.com/topic/progetto-teatro/ progetto teatro scuola] [http://zeakk.ifrance.com/resources/articles/paoa-nero.htm paoa nero] [http://flawedamythyst.ifrance.com/img/styles/sandra-palermo.htm sandra palermo] [http://sm4.ifrance.com/lib/i-will/ i will be missing you] [http://joshuaw-wise.ifrance.com/img/styles/uno-scugnizzo/ uno scugnizzo a new york] [http://sm4.ifrance.com/lib/midi-casa/ midi casa vianello] [http://flawedamythyst.ifrance.com/img/styles/effel.htm effel 65] [http://squoi-oop.ifrance.com/topic/dual-delonghi/ dual delonghi] [http://atrayah.ifrance.com/topic/zeljko-joksimovic.htm zeljko joksimovic dino merlin supermen] [http://krychan.ifrance.com/content/view/get-out.htm get out lauryn hill] [http://nokros.ifrance.com/data/collages/ collages] [http://gajar.ifrance.com/html/bent-condizionatori.htm bent condizionatori] [http://gabe95.ifrance.com/html/asphyx/ asphyx] [http://lightmyfire0214.ifrance.com/topic/titten/ titten] [http://smegmacheez.ifrance.com/content/view/notebook-toshiba/ notebook toshiba p30] [http://sm4.ifrance.com/lib/britney-playboy/ britney playboy] [http://nokros.ifrance.com/data/cercolavoro-it/ cercolavoro it] [http://joshuaw-wise.ifrance.com/img/styles/sei-la/ sei la fine del mondo] [http://sm4.ifrance.com/lib/midis-ha/ midis ha ash] [http://horcrionebay.ifrance.com/resources/articles/bigliettini-prima.htm bigliettini prima comunione] {{Template:split-review}}
{{task}}

In this task, the goal is to find the <em>byte</em> 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]]==
[[Category:4D]]

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

==[[ActionScript]]==
[[Category:ActionScript]]
myStrVar.length()

==[[Ada]]==
[[Category:Ada]]

'''Compiler:''' GCC 4.1.2

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

==[[AppleScript]]==
[[Category:AppleScript]]
count of "Hello World"

==[[AWK]]==
[[Category: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]]==
[[Category: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 plus plus|C ]]==
[[Category:C plus plus|C ]]

'''Standard:''' [[ISO C plus plus|ISO C ]] (AKA [[C plus plus 98|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 sharp|C#]]==
[[Category:C sharp|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]]==
[[Category: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]]==
[[Category:ColdFusion]]

#len("Hello World")#

==[[Common Lisp]]==
[[Category:Common Lisp]]

(length "Hello World")

==[[Component Pascal]]==
[[Category:Component Pascal]]

LEN("Hello, World!")

==[[Forth]]==
[[Category: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]]==
[[Category:Haskell]]

'''Interpreter:''' [[GHC | GHCi]] 6.6, [[Hugs]]

'''Compiler:''' [[GHC]] 6.6

strlen = length "Hello, world!"

==[[IDL]]==
[[Category:IDL]]

'''Compiler:''' any IDL compiler should do

length = strlen("Hello, world!")

==[[Java]]==
[[Category: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]]==
[[Category: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]]==
[[Category:JudoScript]]

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

==[[Lua]]==
[[Category:Lua]]

'''Interpreter:''' [[Lua]] 5.0 or later.

string="Hello world"
length=#string

==[[mIRC Scripting Language]]==
[[Category:mIRC Scripting Language]]

'''Interpreter:''' [[mIRC]]

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

==[[OCaml]]==
[[Category:OCaml]]
'''Interpreter'''/'''Compiler:''' [[Ocaml]] 3.09

String.length "Hello world";;


==[[Perl]]==
[[Category: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]]==
[[Category:PHP]]

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

==[[PL/SQL|PL/SQL]]==
[[Category:PL/SQL|PL/SQL]]

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

==[[Pop11]]==
[[Category: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]]==
[[Category:Python]]

'''Interpreter:''' [[Python]] 2.4

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

==[[Ruby]]==
[[Category:Ruby]]

string="Hello world"
print string.length
or
puts "Hello World".length

==[[Scheme]]==
[[Category:Scheme]]

(string-length "Hello world")

==[[Smalltalk]]==
[[Category:Smalltalk]]

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

==[[Standard ML]]==
[[Category:Standard ML]]

'''Interpreter:''' [[Standard ML of New Jersey | SML/NJ]] 110.60, [[Moscow ML]] 2.01 (January 2004)

'''Compiler:''' [[MLton]] 20061107

val strlen = size "Hello, world!";

==[[Tcl]]==
[[Category: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]]==
[[Category:Toka]]

This will include the terminating 0 in the length.

" hello, world!" count

==[[UNIX Shell]]==
[[Category: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]]==
[[Category:VBScript]]
LenB(string|varname)

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

==[[xTalk]]==
[[Category:xTalk]]

'''Interpreter:''' HyperCard

put the length of "Hello World"

or

put the number of characters in "Hello World"

Latest revision as of 19:32, 19 January 2008

Redirect to: