题意整理。

  • 键盘输入一个字符串。 -获取该字符串的长度,并输出,要求使用指针实现。

方法一(指针)

1.解题思路

  • 定义一个指针指向字符串开头。
  • 只要指针对应元素不是'\n',将指针后移,同时长度加1。

动图展示: alt

2.代码实现

#include <iostream>
using namespace std;

int main() {

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

    int len=0;
    char *p=str;
    //只要指针没有指向换行符位置
    while(*p!='\0'){
        //长度加1,指针p后移
        len++;
        p++;
    }
    cout<<len<<endl;

    return 0;
}

3.复杂度分析

  • 时间复杂度:假设字符串的长度位n,循环总共执行n次,所以时间复杂度为O(n)O(n)
  • 空间复杂度:需要额外常数级别的空间,所以空间复杂度为O(1)O(1)