82723


[添字[]を使わずに回文判定をしたい](https://ja.stackoverflow.com/questions/73006/%e6%b7%bb%e5%ad%97%e3%82%92%e4%bd%bf%e3%82%8f%e3%81%9a%e3%81%ab%e5%9b%9e%e6%96%87%e5%88%a4%e5%ae%9a%e3%82%92%e3%81%97%e3%81%9f%e3%81%84)

の、質問文にありますソースコードで、

[code]

       r--;
       l++;
    }
    return 1;
    
[/code]

の部分の読解（解釈）がわからず困っています。  
これは、日本語にするとどういった処理が行われているのでしょうか。


CC BY-SA 4.0
2021-09-27T14:34:07.830
82721
2021-09-27T15:30:31.997
2021-09-27T15:07:14.443
47754
47754
question
c
C言語のソースコードの一部内容の読解（解釈）がわかりません


`r`は`right`の頭文字で、文字列の右端(末尾)側のインデックスでしょう。  
`l`は`left`の頭文字で、文字列の左端(先頭)側のインデックスでしょう。

ループの最初の判定`if(str[l]!=str[r]){`で両方のインデックスで指し示す文字が同じだったので、次に比較する文字のインデックスに移行するために、`r`(右端(末尾)側)のインデックスをデクリメント`--`して1つ左に移動させます、`l`(左端(先頭)側)のインデックスも同様にインクリメント`++`して1つ右に移動させます。

文字列の両端から順に比較していって、真ん中までのすべての文字が同じであったならば`while(l<=r){`のループが終了し、`return
1;`で回文であったことを示す戻り値で関数を終了します。

質問に抽出されていない参照先記事の部分`if(str[l]!=str[r]){`で、比較した文字が違っていたら`return
0;`で回文では無かったことを示す戻り値で関数を終了します。


CC BY-SA 4.0
2021-09-27T15:30:31.997
82723
2021-09-27T15:30:31.997
26370
82721
answer