for循环不满足起始条件后不退出循环

for循环不满足起始条件后不退出循环
#include
#include
int main()
{
char input[255];
printf("please enter the setence:\n");
for(int i=0;input[i]!='\n';i++)
{
scanf("%c",&input[i]);
}

你这个循环有问题的,循环中输入的input[i]和for循环中的input[i]不是同一个i值啊。当输入input[i]以后,进入下一次循环时,执行i++后,i值增大了1,下次循环判断input[i]!='\n'时,这个i是加了1以后的i。所以不行
改为:
for(int i=0;;i++)
{
scanf("%c",&input[i]);
if(input[i] == '\n')
break;
}

用input[i]=getchar()。

你对for循环的具体执行步骤没有理解。
针对你的代码,首先i取值为0,会先读取input[0]判断是否符合条件(所以这里你的数组最好初始化一下),然后再读入控制台上一个字符写入input[0],然后i就++了,再判断就是input[1]去判断了,那么永远是没法实现你最后一个回车键终止for循环。
那么正确参考写法:

    char input[255]= {0};//初始化
    char endc = '\n';
    printf("please enter the setence:\n");
    for(int i=0;i<255;i++)
    {
        scanf("%c",&input[i]);
        if (input[i] == endc)
        {
            break;
        }
    }