关于c语言字符中的问题

想了许久反而问题更多了的c语言题目,小白实在是无能为力了,求各位大神解惑。图片说明图片说明图片说明谢谢!

Description
字符串是由一个一个字符组成起来的字符数组,每一个字符都是它的一个元素,那么,现在给出字符串的初始化语句,要求你计算该字符串中不同元素个数。
Input
多组数据测试。
输入包括一行字符,由“char”+“name[]=”+“Str”组成。
name对应的一串由数字组成和字母组成的字符串Str,由双引号括起来,表示name字符串的初始化为Str。整行长度不超过100,题目保证变量名合法。
Output
每组数据输出一行,每一行输出数组名及不同元素个数
Sample Input
char str1 [] = "helloworld";
char str2 [] = "helloworld12138";

Sample Output
str1 7
str2 11

 #include <stdio.h>

void main()
{
    int arr[256];
    int i;
    for (i = 0; i< 256; i++) arr[i] = 0;
    char str2 [] = "helloworld12138";
    i = 0;
    while (str2[i++] != '\0') arr[(int)str2[i]]++;
    int n = 0;
    for (i = 0; i< 256; i++) if (arr[i] > 0) n++;
    printf("%d", n);
}

输入输出你就自己搞定吧。