[C言語]ポインタで文字列を1文字ずつforループするには?

C言語

どうも、ちょげ(@chogetarou)です。

ポインタを使って文字列(string)をforループする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

ポインタを使って文字列(string)をforループするには、「\0」を使います。

まず、対象の文字列のアドレスで初期化したポインタを用意します。

次に、for文のループ変数を用意したポインタで初期化します。

ループ条件に、「ループ変数が「’\0’」以外」を指定します。

また、ループ後の処理で、用意したポインタを「+1」し、その結果をループ変数に代入します。

そして、{}内にfor文のループ処理を指定します。

ループ処理では、ループ変数で文字列の文字を取得できます。

//text=対象の文字列
char *p = text;
for (char c = *p; c != '\0'; c = *++p)
{
    //ループ処理
    //ループ変数(c)で文字列の文字を取得
}

上記のforループは、文字列を1文字ずつループします。

上記のforループを実行するには、対象の文字列がポインタである必要があります。

使用例

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

int main(void){
    char *text = "Hello,World.";
    
	char *p = text;
	for (char c = *p; c != '\0'; c = *++p)
	{
		printf("%c", c);
	}
    
    return 0;
}
出力:
Hello,World.

コメント

タイトルとURLをコピーしました