String Byte Length
o zone mi pppp hyundai coup 16v 16 fx max delchi carrier condizionatori ora x attacco al giappone holz tn casalinghi snc pitching put golf senti come puzzi ipod nano 2 gb l evoluzione dell uomo dream system monster allergy telecamere digitali hitachi gta viceciti wp associated srl helena swedin www annuncitelefonici com mustek mp3 40 gb split mono divani per pub krawczyk bartosiewicz trudno tak mp3 fucili sub tvputas km 0 focus decapitazione bulgaro video dati profumi eternity men pollein x600 aiw cartuccia ink jet stampante sblocco rete nece 616 trattieni il respiro creme per il corpo edintorni cat e dog base amandoti gianna nannini musica da discoteca 2004 truetones canon eos 350d efs 1855 ii hotel maglie canon ef 70200 2 8 l usm seca2 cfg naghmeh immagini deni grossi no la folle gloria del comando delta med srl fino 70 s voip wifi piallatrice lettore dvd schermo integrato corsi per bag design codice sblocco nec e616v star wars ibox it mms cometa snc baby queen rsmmcdv 512 masterizzatore combo hp dv1356ea pavillion aldo annunziata srl palloni di calio enanitos microsoft office sbe qmov en videos desktop amd athlon 64 computer cantantes italianos sreca song ki plasma 50 pollici cyzone com www solidarieta it madre e figlio nuova mercedes classe c diesel auto free porn site reflex foto nikon ritter hellmut chatellerault van van de cuba video grande fratello 1 ixus 700 batterie canon per foto e video escape the detention speedy et lumidee sientelo casse z3 golden tulip hotel inntel amsterdam cani piccola taglia asiago vicenza casa affitto vacanza www amg it compil hot party summer 2004 www studiocasa it frizioni maccchine rally campania office tubi di rame garmin usb provveditorato studi ancona in 2 giocatori erasmus www comune ponsacco it recetas de comidas lmax wwwariafrittait porno poker per nokia 6600 ufficio trezzano naviglio macchine digitali acer immagini calendari asti carta nike air max donna mappa stradale dublino stampanti hp multifunzione hot parade summer 2004 www lun com mickael jackson foto 2004 asus a8ne anna gaddes bimbi settore giovanile esordienti dizionario medico www vodaphone it la freccia sulla croce dragosta din tei haiducci elmira danilo montero ultimo cd tiziano ferro x600 pro carisma registratore professionale router wireless adsl con firewall nokia 6680 imaging smartphone bikinis picture gioco orsi real amateur yopal racconti animalsex olimpus e 10 aminoacidi combatimenti imetec scope elettriche edit pif hillsong lyrics israele ristorante campeggio tavolo ritorno al futuro 2 nec cell tiamat antonio fiorano www edelweiss it tu solamente tu michael vieth video on line journalism www shakespear ricciardi franco motivatori adattatore usb 2 0 pedron nuda ravvedimento operoso sala convegno asus p5gd1 pro bundle musei archeologici anna e luca carmaghedon hard disk interno 250 help me eugenia grandet sha ross nelly feat kelly rowland toner lexmark e321 12a7400 sales training reflex digitali konica musica scaricabile saeco comfort lan yu dieci secondi per fuggire scheda grafica officina zoe testi pannello giardino bmw 320 d touring pro evolution soccer 4 modificato ps2 estrazione dna cartoni animati musica sigla teenage dirtbag wheatus termoretraibile ie 6 0 scarica www prima categoria calcio i patrizi gabriele paolini email gratuita panasonic macchine fotografiche digitali pickup chitarra canon laser lbp5200 film la famiglia adams tubi gomma temperatura un certo giorno hub usb da 1 1 a 2 0 cp arredo giardino mobili saeco magic espresso trovare donne disponibile tiziano ferro free culture beat poeta e contadino la coq sportif
![Task](http://static.miraheze.org/rosettacodewiki/thumb/b/ba/Rcode-button-task-crushed.png/64px-Rcode-button-task-crushed.png)
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
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
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
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"
- Split and Needing Review
- Programming Tasks
- Solutions by Programming Task
- 4D
- ActionScript
- Ada
- AppleScript
- AWK
- C
- C plus plus
- C sharp
- Clean
- ColdFusion
- Common Lisp
- Component Pascal
- Forth
- Haskell
- IDL
- Java
- JavaScript
- JudoScript
- Lua
- MIRC Scripting Language
- OCaml
- Perl
- PHP
- PL/SQL
- Pop11
- Python
- Ruby
- Scheme
- Smalltalk
- Standard ML
- Tcl
- Toka
- UNIX Shell
- VBScript
- XTalk