• 字符串语法


    记录C/C++读取和不读取空格的语法

    #include<stdio.h>
    #include<iostream>
    #include<algorithm>
    #include<string>
    #include<string.h>
    using namespace std;
    int main()
    {
        ///用char数组,如果是一个一个复制式赋值,最后要补'\0',不然没有结束地方
        char str1[15];
        char str2[15];
        scanf("%s",str1);///遇到空格、回车等会结束获取输入的字符串,后面的字符串会过滤掉(存放在输入流中)。
                            ///如果后面还需要输入字符串,则会从前面存放的字符串开始获取。
        getchar();      ///吸收空白字符
        gets(str2);     ///可以输入空格,回车结束
    
        for(int i=0;i<strlen(str1);i++)///输出需要截取到字符长度,不然会输出一些乱七八糟的东西
                                        ///strlen获取长度需要头文件<string.h>
            printf("%c",str1[i]);        ///单个字符输出
            printf("\n");
    
        printf("%s\n",str2);              ///字符串输出
        
        ///string型,需要头文件<string>
        string str3;  
        string str4;
    
        cin>>str3; ///cin输入,遇到空格和回车结束,跳过空格,空格还留在缓冲区
        getchar();///可以读取空白字符,没有赋值给变量,就释放了
        getline(cin,str4);///可以输入空格
    
        cout<<str3<<endl;
        printf("%s\n",str4.c_str());///printf输出需要调用函数
    
        ///复制,存储副本
        str3 = str4;///string型可以直接复制,直接添加字符或者字符串,但是不能用 += 这个符号
    int len=str3.size();///获取长度
       bool flag=str3.empty();///判断是否为空字符串,其实判断长度为0也可以。
    str3 = str3+"abc"; str3 = str3+'a'; cout<<str3<<endl; return 0; }

    全局变量和局部变量的数组有所差异。

    定义全局变量的字符数组,并且是一个一个赋值时,哪一个没有赋值,自动补'\0'。局部变量则会随机填充,用strlen截取长度可知,输入不相关的语句,字符数组长度会不一样,甚至会出现截取的长度大于局部变量数组最大范围的情况。

  • 相关阅读:
    webpack devServer配置项的坑
    app混合开发 fastlick.js 在ios上 input标签点击 不灵敏 处理
    vue 学习八 自定义指令
    Verilog数值大小比较
    Verilog实现Matlab的fliplr函数
    基本不等式
    如何读取ila数据
    Xilinx FPGA时钟IP核注意事项
    FPGA Turbo译码器注意事项
    EbN0转SNR
  • 原文地址:https://www.cnblogs.com/shoulinniao/p/9457360.html
Copyright © 2020-2023  润新知