计算机改错题哪里有错误

L1#include<stdio.h>
L2main()
L3unsigned char str[80],*p;int
L4index[256];
L5 gets(str);
L6 for(p=str;*p;p++)
L7 index[*p]++;
L8 for(p=str;*p;p++)
L9 if(index[p]==1)
L10 putchar(*p);L11 break;
L12 return 0;
L13 ]

代码实现的目的是什么

供参考:

#include<stdio.h>
int main()
{
    unsigned char str[80],*p;
    int index[256]={0};    //数组没有初始化
    gets(str);
    for(p=str;*p;p++)
        index[*p]++;
    for(p=str;*p;p++)
        if(index[*p]==1)
           putchar(*p);
    //break;     这里 break; 是什么作用?

    return 0;
}