今回は、ポインタを活用して、文字列の長さを調べるプログラムをご紹介しよう。
なお、本プログラムは、Windows 11 Home(23H2)上で、 Visual Studio Code(1.90.2)を使用して作成し、gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0でコンパイルしている。
//文字列の長さを調べる(ポインタによる走査)プログラム
#include <stdio.h>
//文字列sの長さを返す
int str_length(const char *s)
{
int len = 0;
while (*s++)
len++;
return len;
}
int main(void)
{
char str[128];
printf("文字列を入力してください:");
scanf("%s",str);
printf("文字列\"%s\"の長さは%dです。\n",str,str_length(str));
return 0;
}
実行結果
文字列を入力してください:seven
文字列"seven"の長さは5です。
while文による繰り返しの継続条件として、着目文字*sが0でないかどうか判定される。
その判定が終わった直後にs++によるインクリメントが行われる。
配列の要素を指すポインタは、
インクリメントされると1個後方の要素を指すように更新され、
デクリメントされると1個前方の要素を指すように更新される。
(参考) 新・明解C言語 入門編 第2版 柴田 望洋 (著)SBクリエイティブ
コメント