文字列の長さを調べる

明解C言語 入門編 > 11. 文字列とポインタ >

文字列の長さを調べる

C


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

unsigned str_length(const char* str)
{
size_t len = 0;

while (*str++)
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:\>lesson084\project1.exe
sizeof("ABC") = 100
strlen("ABC") = 3
str_length("ABC") = 3

Delphi


program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;

function str_length(str:PChar):Integer;
begin
result := 0;
while (str^ <> #0) do
begin
Inc(str);
Inc(result);
end;
end;

procedure main();
const
str: String = 'ABC';
ptr: array[0..255] of Char = '12345';
begin
Writeln(Format('length(''%s'') = %d', [str, Length(str)]));
Writeln(Format('sizeof(''%s'') = %d', [ptr, SizeOf(ptr)]));
Writeln(Format('strlen(''%s'') = %d', [ptr, StrLen(ptr)]));
Writeln(Format('str_length(''%s'') = %d', [ptr, str_length(ptr)]));
end;

begin
main;
end.

実行結果


S:\>lesson084\project1.exe
length('ABC') = 3
sizeof('12345') = 256
strlen('12345') = 5
str_length('12345') = 5