String Character Length: Difference between revisions
No edit summary |
→[[C]]: The programs in the C section weren't valid ISO C programs. ISO C doesn't allow an external ; at the end of functions. Also, I reformatted them for consistency (again). |
||
Line 18: | Line 18: | ||
#include <string.h> |
#include <string.h> |
||
int main( |
int main(void) |
||
⚫ | |||
const char *string = "Hello, world!"; |
|||
size_t length = strlen(string); |
|||
return 0; |
|||
} |
} |
||
or by hand: |
or by hand: |
||
int main( |
int main(void) |
||
{ |
|||
const char *string = "Hello, world!"; |
|||
const char *string = "Hello, world!"; |
|||
int length = 0; |
|||
⚫ | |||
p = string; |
|||
⚫ | |||
⚫ | |||
return 0; |
|||
} |
|||
⚫ | |||
⚫ | |||
#include <stdlib.h> |
#include <stdlib.h> |
||
int main() |
int main(void) |
||
{ |
{ |
||
char const s[] = "Hello, world!"; |
char const s[] = "Hello, world!"; |
||
Line 54: | Line 57: | ||
#include <wchar.h> |
#include <wchar.h> |
||
int main( |
int main(void) |
||
{ |
|||
wchar_t *s = L"\x304A\x306F\x3088\x3046"; /* Japanese hiragana ohayou */ |
wchar_t *s = L"\x304A\x306F\x3088\x3046"; /* Japanese hiragana ohayou */ |
||
size_t length; |
size_t length; |
||
length = wcslen(s); |
length = wcslen(s); |
||
printf("Length in characters = %d\n",length); |
printf("Length in characters = %d\n", length); |
||
printf("Length in bytes = %d\n",sizeof(s) * sizeof(wchar_t)); |
printf("Length in bytes = %d\n", sizeof(s) * sizeof(wchar_t)); |
||
return 0; |
|||
} |
} |
||
Revision as of 20:57, 21 January 2007
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 length of a string.
Ada
Compiler: GCC 4.1.2
Str : String := "Hello World"; Length : constant Natural := Str'Length;
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!"; int length = 0; p = 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; }
For wide character strings (usually Unicode):
#include <stdlib.h> #include <stdio.h> #include <wchar.h> int main(void) { wchar_t *s = L"\x304A\x306F\x3088\x3046"; /* Japanese hiragana ohayou */ size_t length; length = wcslen(s); printf("Length in characters = %d\n", length); printf("Length in bytes = %d\n", sizeof(s) * sizeof(wchar_t)); 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(); }
For wide character strings:
#include <string> int main() { std::wstring s = L"\u304A\u306F\u3088\u3046"; std::wstring::size_type length = s.length(); }
C#
Platform: .NET Language Version: 1.0+
string s = "Hello, world!"; int length = s.Length;
Common Lisp
(length "Hello World")
Component Pascal
LEN("Hello, World!")
Java
Compiler: any Java compiler should do
String s = "Hello, world!"; int length = s.length();
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
Compiler: mIRC
alias stringlength { echo -a Your Name is: $len($$?="Whats your name") letters long! }
Perl
Interpreter: Perl any 5.X
my $length = length "Hello, world!";
PHP
$length = strlen('Hello, world!');
Python
Interpreter: Python 2.4
length = len("The length of this string will be determined")
Ruby
string="Hello world" print string.length
SML
Interpreter: SML/NJ 110.60, Moscow ML 2.01 (January 2004)
Compiler: MLton 20061107
val strlen = size("Hello, world!");
TCL
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 characters is %d" $s1 [string length $s1]] puts [format "length of \"%s\" in characters is %d" $s2 [string length $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
xTalk
Interpreter: HyperCard
put the length of "Hello World"
or
put the number of characters in "Hello World"