String Byte Length: Difference between revisions

From Rosetta Code
Content deleted Content added
No edit summary
Ce (talk | contribs)
Line 1: Line 1:
{{Template:split-review}}
[http://tegre.blogspot.com casino online] [http://olud-matilda.blogspot.com cheap medication no phentermine prescription] [http://anninator.blogspot.com buy link onlinehtml usersrolro xanax xanax] [http://swordbladedevil.blogspot.com where to buy xanax] [http://docompester.blogspot.com casino gambling online] [http://jemzamia.blogspot.com casino game online] [http://comnimh.blogspot.com casino gambling game online] [http://mpopenker.blogspot.com propecia shedding] [http://m-r-icons.blogspot.com propecia prescription] [http://veelaprincess99.blogspot.com argosy casino] [http://jonnymachinegun.blogspot.com best casino online] [http://theetinygoat.blogspot.com lowest price propecia] [http://zotik-lena.blogspot.com casino online usa] [http://hamadelica.blogspot.com propecia proscar] [http://scooby-duelist.blogspot.com 3d casino free gambling game multiplayer not online rpg] [http://estreeladllsur.blogspot.com casino online promotion] [http://kimichameleon.blogspot.com valium grapefruit] [http://marsianca.blogspot.com meds propecia] [http://ignortd-eears.blogspot.com bonus casino gambling online] [http://rosecoma.blogspot.com casino free slot] [http://idrivedrunk.blogspot.com generic propecia] [http://karen101.blogspot.com buy cheap phentermine online pharmacy] [http://marysiam7.blogspot.com buy xanax without prescription in usa] [http://dvorjanin.blogspot.com day next propecia] [http://lil-dorkwad.blogspot.com casino resort] [http://hexakeras5pod.blogspot.com frontal hair loss propecia] [http://tasha-fox.blogspot.com cheap phentermine xml] [http://oxamyth.blogspot.com casino online play] [http://rockbirthedme.blogspot.com casino free game slot] [http://totoro-journal.blogspot.com cheap 99 phentermine] [http://icancounttog.blogspot.com propecia for less] [http://dreiviertel.blogspot.com casino oklahoma] [http://rouy-hero-died.blogspot.com cheap phentermine no script] [http://ehecrazedhtrmit.blogspot.com valium effects] [http://suicidexlove.blogspot.com ativan blood does in long stay] [http://synnin-viemaa.blogspot.com ativan for dementia] [http://spacedim68.blogspot.com buy cheap phentermine online pharmacy] [http://tonegativeone.blogspot.com casino free game online play] [http://anthemboy8.blogspot.com casino venetian] [http://nikkie-cole.blogspot.com phentermine very cheap] [http://nefariouswraith.blogspot.com cheap overnight phentermine] [http://the-amberlady.blogspot.com cheap phentermine online with cod] [http://goler-sor1z.blogspot.com casino royal] [http://master-z-great.blogspot.com blue casino chip] [http://nika-ru.blogspot.com acne propecia] [http://m-i-a-s-m-a.blogspot.com ativan dosing] [http://sunaseth.blogspot.com purchase cheap phentermine] [http://asaearh.blogspot.com buy online prescription xanax] [http://peace-weasel.blogspot.com cheap 15mg phentermine] [http://camelmenthe.blogspot.com casino online tip] [http://dionysios-r.blogspot.com 37 5 cheap online phentermine] [http://maitybaba.blogspot.com casino new online] [http://bondich.blogspot.com mixing valium and xanax] [http://aynippa.blogspot.com propecia drug] [http://floridian-love.blogspot.com casino online review] [http://sofiefie.blogspot.com casino free game] [http://kenji-no-sorata.blogspot.com casino make money online] [http://iron-island.blogspot.com cheap literacy phentermine] [http://eighty-8088.blogspot.com buying propecia] [http://lavender-dove.blogspot.com california casino indian] [http://the-murderer.blogspot.com barona casino] [http://brat-nikodim.blogspot.com cheap delivered find fl phentermine] [http://ratonhteroad.blogspot.com casino guide] [http://zanuda-juja.blogspot.com casino microgaming online] [http://psmorrison.blogspot.com snorting valium] [http://ivoyt.blogspot.com propecia hair] [http://konstantine01.blogspot.com casino royale] [http://lawrencegillies.blogspot.com ameristar casino] [http://arketon24.blogspot.com casino hotel] [http://hand-stained-xx.blogspot.com casino game] [http://iehf.blogspot.com book casino sport] [http://jeanniexong.blogspot.com casino online tournament] [http://azn-chickadee.blogspot.com buy link onlinehtml xanax xanax00procom] [http://thesam118.blogspot.com casino horseshoe] [http://raezey.blogspot.com bonus casino code online] [http://jimmini.blogspot.com cheap phentermine yellow] [http://jokerupot.blogspot.com casino free game online slot] [http://silly-n.blogspot.com best bonus casino online] [http://asaia.blogspot.com casino palm] [http://normanburke.blogspot.com casino fallsview] [http://s1xbucksamonkey.blogspot.com casino english harbour online] [http://moody-immortal2.blogspot.com buy link online traxto xanax] [http://murdersoul.blogspot.com casino hard rock] [http://enchanted1312.blogspot.com injecting valium] [http://foedu-de-solnil.blogspot.com propecia effects] [http://gorillashaman.blogspot.com ativan drug lorazepam] [http://hclt-events.blogspot.com cheap 37 5 phentermine] [http://vegetnuks.blogspot.com picture propecia result] [http://angelcakez.blogspot.com cheap herbal phentermine] [http://dogzilla30.blogspot.com valium vs vicodin] [http://paperroom.blogspot.com casino gaming online] [http://sakura-watanuki.blogspot.com 37 5mg cheap phentermine] [http://pearlibuttons.blogspot.com buy cheap com h1 phentermine phentermine ripway] [http://jesuisleflet.blogspot.com casino game online poker] [http://falling-anvil.blogspot.com casino gambling line online] [http://seranton.blogspot.com propecia side effects] [http://pashkak0marov.blogspot.com casino riverside] [http://piggy-soldier.blogspot.com borgata casino] [http://techinpet.blogspot.com casino fun online play] [http://xitokiry.blogspot.com casino gambling guide online] [http://kalbongzig64.blogspot.com casino hotel palm] [http://peacedoorball.blogspot.com valium without prescription] [http://meadelante.blogspot.com order propecia online] [http://callsecurity.blogspot.com order cheap phentermine online overnite] [http://solacemysoul.blogspot.com phentermine cheap order by] [http://jessiethebestie.blogspot.com valium iv] [http://soulswallo.blogspot.com casino online slot] [http://jon-a-ross.blogspot.com casino com online] [http://phoenixbrngbrt.blogspot.com bonus casino] [http://pyrebi.blogspot.com casino flash online] [http://winter-gossamer.blogspot.com casino free online slot] [http://aurney.blogspot.com get phentermine cheap] [http://mutantalias.blogspot.com valium use] [http://zebbiejohnson.blogspot.com cheap phentermine pill] [http://mrwolfy49.blogspot.com cheap order phentermine prescription] [http://bear-terry.blogspot.com casino gaming] [http://jeffrorocks21.blogspot.com cheap cod extremely phentermine] [http://roxyobsessed7.blogspot.com buy link nowcom online xanax] [http://pastmagic.blogspot.com casino greektown] [http://smackinghotlips.blogspot.com buy link online sitekreatorcom xanax] [http://lilhaq.blogspot.com casino chip] [http://ekviceaia.blogspot.com indication of valium] [http://machi-neko.blogspot.com cheap prescription diet pill phentermine] [http://ryu-jounetsu.blogspot.com canadian casino online] [http://chuvak-org.blogspot.com valium dosage] [http://sahezzz.blogspot.com casino choctaw] [http://prettyhair24-7.blogspot.com propecia study] [http://ouglova.blogspot.com valium half life] [http://woolygrrl.blogspot.com valium side effects] [http://missensign.blogspot.com buy link onlinefansto xanax] [http://anw66.blogspot.com buy doctor xanax] [http://oltcha.blogspot.com bingo casino free game online play] [http://dirty-ru-lenta.blogspot.com propecia online] [http://codigodor.blogspot.com brand buy online xanax] [http://spirit-of-llama.blogspot.com cheap phentermine without rx] [http://sijalik.blogspot.com casino free online play] [http://rm-ast-pants.blogspot.com buy online upjohn xanax] [http://nekostar3.blogspot.com ativan anxiety] [http://sweetpniangel87.blogspot.com long term side effects of propecia] [http://yell0w-n1njaman.blogspot.com casino hotel las vegas] [http://jewels667.blogspot.com propecia impotence] [http://your-starry-sky.blogspot.com casino new york] [http://skvonk.blogspot.com ativan birth defect] [http://pyr0lys1s.blogspot.com cheap phentermine no prior prescription] [http://firejedi.blogspot.com cheapest cheap phentermine] [http://mywaybackwhen.blogspot.com casino deposit new no online] [http://bakamandy.blogspot.com ativan dose lethal] [http://hwantiig-yg.blogspot.com buy xanax legally] [http://laynamarya.blogspot.com ativan and alcohol] [http://xjenhx.blogspot.com viagra medication prescription levitra cialis propecia] [http://manka-kapak.blogspot.com casino craps online] [http://comradealtmer.blogspot.com casino thunder valley] [http://mafy69.blogspot.com casino online play] [http://danga4ka.blogspot.com casino online wagering] [http://bostvndaoe.blogspot.com ativan forum] [http://ridiaulctions.blogspot.com buy overseas xanax] [http://guess76.blogspot.com casino in las vegas] [http://gatx10258.blogspot.com casino links] [http://femdog.blogspot.com casino on net] [http://nord9maedchen73.blogspot.com ativan for depression] [http://chic-ks.blogspot.com casino golden online palace] [http://apesapoppin.blogspot.com canada cheap phentermine] [http://lola-providence.blogspot.com ativan addiction] [http://lilo-n.blogspot.com buy xanax cod] [http://redfxo.blogspot.com propecia before and after] [http://telnushka.blogspot.com buy cheap lowest phentermine price] [http://tart0938.blogspot.com casino grand online] [http://azu-erlove.blogspot.com casino free game online] [http://yasashisa.blogspot.com valium online] [http://xboct13.blogspot.com ativan attack medication online order panic] [http://the-craftman.blogspot.com buy propecia online] [http://yoshi-in-black.blogspot.com how propecia works] [http://kulhain.blogspot.com buy insurance medication without xanax] [http://kabierac.blogspot.com casino eagle soaring] [http://sand-stars.blogspot.com valium sale] [http://vands88.blogspot.com casino gambling internet online] [http://jupka97.blogspot.com cheap online order phentermine] [http://thedailywash.blogspot.com online casino game] [http://justanotherebel.blogspot.com cheap phentermine no prescription needed] [http://hitm4n.blogspot.com buy buy target xanax xanax] [http://ktbug1373.blogspot.com casino vegas] [http://annugel--h.blogspot.com propecia result] [http://fragolla.blogspot.com casino deposit no] [http://ejreoonster.blogspot.com propecia and woman] [http://gololed.blogspot.com buy link member spacesmsncom xanax] [http://mama-rachelbeth.blogspot.com casino slot] [http://mothrinventor.blogspot.com online prescription propecia] [http://rappture.blogspot.com baldness hair lasercomb loss propecia] [http://llillith.blogspot.com casino news online] [http://tayamarn.blogspot.com casino commerce] [http://angry-sister.blogspot.com casino payout] [http://cetki.blogspot.com addicted to ativan] [http://fau75.blogspot.com casino hard rock seminole] [http://un-fois.blogspot.com casino pechanga] [http://suzulan.blogspot.com propecia sale] [http://nixve.blogspot.com propecia picture] [http://lettersof-love.blogspot.com propecia cost] [http://nmagiietending.blogspot.com buy xanax online pay by check] [http://xelby0.blogspot.com casino fortunelounge online] [http://estarcollector.blogspot.com 2mg buy generic xanax] {{Template:split-review}}
{{task}}
{{task}}


Line 65: Line 65:
char *p = (char *) string;
char *p = (char *) string;
while (*p != '\0') length ;
while (*p++ != '\0') length++;
return 0;
return 0;
Line 82: Line 82:
}
}


==[[C plus plus|C ]]==
==[[C plus plus|C++]]==
[[Category:C plus plus|C ]]
[[Category:C plus plus|C++]]


'''Standard:''' [[ISO C plus plus|ISO C ]] (AKA [[C plus plus 98|C 98]]):
'''Standard:''' [[ISO C plus plus|ISO C++]] (AKA [[C plus plus 98|C++98]]):


'''Compiler:''' g 4.0.2
'''Compiler:''' g++ 4.0.2


#include <string> // note: '''not''' <string.h>
#include <string> // note: '''not''' <string.h>
Line 114: Line 114:


'''Platform:''' [[.NET]]
'''Platform:''' [[.NET]]
'''Language Version:''' 1.0
'''Language Version:''' 1.0+


string s = "Hello, world!";
string s = "Hello, world!";

Revision as of 11:52, 8 May 2007

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.6

Perl strings are in either the platform's native single-byte encoding (usually ISO 8859-1) or UTF-8. utf8::upgrade (a translation function) has the side effect of returning the resulting byte length, and does nothing else if the string is already UTF-8.

$str = "Hello, world!";
$length = utf8::is_utf8($str) ? utf8::upgrade($str) : length $str;

Note: Do not use utf8; in this case. That has other side effects, and the functions are available without it.

PHP

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

PL/SQL

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

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]]

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"