由于要求用指针来获取,所以设char数据类型的指针指向数组的首地址str。一开始写了数组str里面所有数字为0,如果输入完一串字符,数组里的一些数字0会被替代掉,那么这时候解引用p就不会得到0(p这个时候等于str[0]因为是首地址)因为str[0]已经被字符串覆盖。做一个循环让指针一个字节一个字节往下走,每走一次计一个长度单位,等到p指到解引用为0的str就停止循环并输出长度。

#include <iostream>
using namespace std;

int main() {

    char str[100] = { 0 };
    cin.getline(str, sizeof(str));

    // write your code here......
    int len=0;
    char*p=str;
    while(*p!=0)
    {
        p++;
        len++;
    }
    cout<<len<<endl;

    return 0;
}