啊为什么这样子不能计算字符串长度

求助啊!!为什么这样子不能计算字符串长度
C/C++ code

#include<stdio.h>
#include<string.h>
main()
{
    char *s,a[10];
    s=a;
//    gets(s);
    int i=0;
    while(i<5)
    {
        scanf("%c",*s);
        i++;
        s++;
    }
        *s='\0';
    printf("%d\n\n",strlen(s));
}


------解决方案--------------------
照下面修改即可:
C/C++ code

#include<stdio.h>
#include<string.h>
int main()
{
    char *s,a[10];
    s = a;
    int i=0;
    while(i < 5)
    {
        // scanf("%c",*s);
        scanf("%c", s + i);        // 第二个参数必须是地址
        i++;
        //s++;
        getchar();                // 用于接收回车键
    }
    //*s='\0';
    *(s + i)='\0';
    printf("%d\n\n",strlen(s));
    return 0;
}