IE盒子

搜索
查看: 166|回复: 1

C语言经典题目每日一题-第一天-

[复制链接]

4

主题

8

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2022-11-26 19:41:56 | 显示全部楼层 |阅读模式
1,前言

今天是学习C语言的第一天,于是我下定决心做好刷题笔记,为了督促自己好好学习,坚持就是胜利!!
2,描述




键盘输入一个字符串,编写代码获取字符串的长度并输出,要求使用字符指针实现。

输入描述:
键盘输入一个字符串
输出描述:
输出字符串的长度
3,示例1

输入: helloworld
输出:10
4,思路分析

题意整理。


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

1.解题思路

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


5,题解

#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;
}6,刷题经验分享



刷题的第一个意义就是帮助你记忆,记忆那些方法和步骤。刷题不在量,而在系统和坚持。对于一类题,每天刷一两道就够了,想要不忘记,应该坚持定期或者是系统性地刷(高数就是这样)。这不仅仅帮你记忆,而且能节省下很多时间。我最近就是在刷算法的练习题,现在感觉自己肉眼可见的提升!!

刷题的第二个意义就是培养题感,同时保住题感。为什么二轮复习鼓励你刷题,就是想让你培养出题感。刷题时最重要的不是做出这道题,而是要能够看出这道题属于哪一个板块,属于那一部分知识,应该用什么方法来解。你要懂得从题目中读懂老师的出题意图,并从自己的知识框架中提取需要的工具。


7,总结

复杂度分析

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

使用道具 举报

1

主题

6

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2025-2-26 17:29:34 | 显示全部楼层
这么强,支持楼主,佩服
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表