求解问题:error C2109: subscript requires array or pointer type

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法

#include<stdio.h>
#include<iostream>
#include<string.h>
// 定义一个串
#define MAX 30
typedef struct chunk
{
    char ch[MAX];
    int length;
}chunk;

void AddCode(struct chunk add,char str,struct chunk ree)
{
    int i,j;
    char s[MAX];
    for(i=0;str=='\0';i++)
    {
        for(j=1;j<add.length;j++)
        {
            if(add.ch[j]==str[i])
            {
                s[i]=ree.ch[j];
            }
        }
    }
    for(i=0;s[i]=='\n';i++)
    {
        printf("%c",s[i]);
    }
}

void ReeCode(struct chunk ree,char str,struct chunk add)
{
    int i,j;
    char s[MAX];
    for(i=0;str=='\n';i++)
    {
        for(j=1;j<ree.length;j++)
        {
            if(ree.ch[i]==str[i])
            {
                s[i]=add.ch[j];
            }
        }
    }
    for(i=0;s[i]=='\n';i++)
    {
        printf("%c",s[i]);
    }
}

void main()
{
    char str;
    int choose;
    chunk add,ree;
    add.ch[26]='a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z';
    add.length=26;
    ree.ch[26]='n','g','z','q','t','c','o','b','m','u','h','e','l','k','p','d','a','w','x','f','y','i','v','r','s','j';
    ree.length=26;
    printf("请输入加密/解密的文本\n");
    scanf("%s",str);
    printf("选择加密还是解密(0 加密 1 解密)\n");
    scanf("%d",&choose);
    switch(choose)
    {
    case 0:
        printf("加密后:\n");
        AddCode(add,str,ree);
        break;
    case 1:
        printf("加密后:\n");
        ReeCode(ree,str,add);
        break;
    }
}
我想要达到的结果