73009


タイトルにも書いたように、回文を判定するプログラムを添え字ありきで作ることはできたのですが、添字を使わず、`*`
だけでどのようにプログラムをすればいいのかがわかりませんでした。

`const char str[]` を添え字を使わずに `char *str` で表すにはどうすればいいでしょうか。よろしくお願いします。

とりあえず、添字ありのプログラムを以下に示します。

[code]

    #include<stdio.h>
    
    int palindrome(const char str[])
    {
        int l,r;
        r=0;
        while(str[r]!='\0'){
           r++;
        }
        r--;
        l=0;
        while(l<=r){
           if(str[l]!=str[r]){
             return 0;
           }
           r--;
           l++;
        }
        return 1;
    }
    
    #define MAXSTRLEN 128
    
    int main(void)
    {
        char str[MAXSTRLEN];
        printf("Input Word: ");
        scanf("%s", str);
    
        if (palindrome(str))
            printf("%sは回文です。\n", str);
        else
            printf("%sは回文ではありません。\n", str);
    
        return 0;
    }
    
[/code]


CC BY-SA 4.0
2021-01-01T07:20:57.257
73006
2021-01-01T09:08:07.243
2021-01-01T09:08:07.243
3060
41837
question
c
添字[]を使わずに回文判定をしたい


`str[i]`は`*(str+i)`に書き換え可能です。  
※`char *str`でなく`char str[]`のままでも`str[i]`は`*(str+i)`に書き換えられます。


CC BY-SA 4.0
2021-01-01T07:29:06.297
73009
2021-01-01T07:29:06.297
35558
73006
answer