• 2024.03.02蓝桥云课笔记


    1.scanf与printf取消分隔符的限制方法

    示例代码

    1. int main()
    2. {
    3. char s[10];
    4. scanf("%d[^\n]",s);
    5. printf("%s",s);
    6. return 0;
    7. }

    运行:

    输入:Hello World

    输出:Hello World

    注:其中[]中是一个正则表达式,表示只要不是回车就读进去。

    scanf和printf的优势:

    1. 格式化输入输出
    2. 效率高

    2.cin与cout取消同步流

    1. int main()
    2. {
    3. //取消同步流
    4. ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    5. //其他操作不变
    6. int x;
    7. cin>>x;
    8. cout<
    9. return 0;
    10. }

    由于cin和cout需要自动判断变量类型等内部原因,读写效率比scanf和printf低。当数据量较大时,可能导致程序运行超时。

     通过取消同步流加速cin和cout,加速后相差无几。

    3.string多种声明与初始化

    1. #include
    2. #include
    3. using namespace std;
    4. int main()
    5. {
    6. //声明初始化一个空的string
    7. string str1;
    8. //使用字符串字面量初始化字符串
    9. string str2 = "Hello World";
    10. //使用另一个字符串初始化字符串
    11. string str3 = str2;
    12. //使用另一个string对象的部分来初始化字符串
    13. string str4=str3.substr(0,5);
    14. //substr(起始位置,长度)
    15. //使用字符数组初始化字符串
    16. const char*charArray = "Hello";
    17. string str5(charArray);
    18. //使用重复对的字符初始化字符串
    19. string str6(5,'A');
    20. //string(个数,字符)
    21. //输出
    22. cout<
    23. cout<
    24. cout<
    25. cout<
    26. cout<
    27. cout<
    28. return 0;
    29. }

    运行结果


    Hello World
    Hello World
    Hello
    Hello
    AAAAA

    此外还有一种读入一行字符串的方式:

    getline(cin,s);

    4.string的基本操作

    c_str

    用于返回一个指向以空字符结尾的C风格字符串(const char*类型)

    在进行printf输出时,需要将string转换为C风格的字符串进行输出。

    实例代码:

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    6. char buf[100];
    7. scanf("%s",buf);
    8. string str(buf);
    9. printf("str = %s\n",str.c_str());
    10. return 0;

    输入:hello

    输出:str = hello

    遍历string

    两种方法:

    1. 循环枚举下标
    2. auto枚举(&表示取引用类型,如果对i修改将会改变原来的值)

    代码实例

    1. string s = "helloworld";
    2. for(int i=0;ilength();++i)
    3. {
    4. cout<
    5. }
    6. cout<<'\n';
    7. for(auto i: s)
    8. {
    9. cout<
    10. i='a';//无效修改,这属于复制,而不是引用
    11. }
    12. cout<<'\n';
    13. for(auto &i:s)
    14. {
    15. cout<
    16. i='a';//有效修改,会改变s的值
    17. }
    18. cout<<'\n';
    19. cout<'\n';

    其他操作

    例题:1.反转字符串中的字符 - 蓝桥云课 (lanqiao.cn)

    题解:

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. string str;
    6. getline(cin,str);
    7. reverse(str.begin(),str.end());
    8. cout<
    9. return 0;
    10. }

    对其中用到的reverse()函数的说明参考:C++中的reverse()函数_c++ reverse函数-CSDN博客

  • 相关阅读:
    如何用代码画出一幅好看的画
    华为数通方向HCIP-DataCom H12-831题库(单选题:1-20)
    NoSQL之 Redis配置与优化
    基于KubeEdge的边缘节点分组管理设计与实现
    【MATLAB】 01 基本操作与数组输入
    Python判断循环语法
    源码编译安装 LAMP
    A-Level经济真题(3)
    SpringSecurity实战-第6-8章
    Linux下zip压缩的解压
  • 原文地址:https://blog.csdn.net/fancywxq/article/details/136413230