文字列の長さを調べる

明解C言語 入門編 > 9. 文字列の基本 >

文字列の長さを調べる

C


#include <stdio.h>
#include <string.h>

unsigned str_length(const char str[])
{
unsigned len = 0;

while (str[len])
len++;

return len;
}

int main(int argc, char* argv[])
{
char str[100] = "ABC";

printf("sizeof(\"%s\") = %u\n", str, (unsigned)sizeof(str));
printf("strlen(\"%s\") = %u\n", str, strlen(str));
printf("str_length(\"%s\") = %u\n", str, str_length(str));

return 0;
}

実行結果


R:\>lesson072\Project1.exe
sizeof("ABC") = 100
strlen("ABC") = 3
str_length("ABC") = 3

Delphi


program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;

procedure main();
var
str: String;
begin
str := 'ABC';
Writeln(Format('length(''%s'') = %d', [str, Length(str)]));
end;

begin
main;
end.

実行結果


S:\>lesson072\Project1.exe
length('ABC') = 3

Perl
sub char_count
{
    ($_) = @_;

    # 全角文字数を数え、全角文字を消去する
    $lz = s/[\x81-\x9f\xe0-\xfc][\x40-\x7e\x80-\xfc]//g;
    
    # 半角文字数を数える
    $lh = length($_);

    # 全角・半角の文字数を足して返す
    return $lz + $lh;
}

$n = &char_count("123");
print "文字数('123') = $n \n";

$n = length("123");
print "バイト('123') = $n \n";

実行結果

L:\>perl lesson_09_072.pl
文字数('123') = 3
バイト('123') = 6

Ruby
def char_count(arg)
    return arg.split(//s).length
end

n = char_count("123")
print "文字数('123') = #{n} \n"

n = "123".length
print "バイト('123') = #{n} \n"

実行結果

L:\>ruby l:\lesson_09_072.rb
文字数('123') = 3
バイト('123') = 6