请问我这个为啥怎么输入,输出之后都是19呢,这应该改咋改呀?

想写使用指针作为参数,求字符串的长度。请问我这个为啥怎么输入,输出之后都是19呢,这应该改咋改呀?

#include 
using namespace std;
int main()
{
    char arr[99];
    gets(arr); 
    int num=0;
    for(int i=0;i<99;i++)
    {
        char arr[i];
        char *a=&arr[i];
        if(*a!='\0')
        num++;
        i++;      
    }
    cout<return 0;
}



img


#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
    char arr[99];
    gets(arr); 
    int num=0;
    char *a= arr;
    for(int i=0;i<99;i++)
    {
        
        if(*a =='\0')
        {
            break;
        }
        num++;
        a++;      
    }
    cout<<num<<endl;
    return 0;
}
 

第10行删掉
另外,需要改为
if(*a!='\0')
num++;
else
break; //遇到'\0'说明字符串结束了,不要往下再统计了


#include <iostream>
using namespace std;
int main()
{
    char arr[99];
    gets(arr);
    int num=0;
    char *a=arr;
    while(*a!='\0')
            {
                a++;
            }

    cout<<a-arr<<endl;
    return 0;
}