• 【CPP】字符串和格式化输入输出


    前导:数组(array),字符串转换说明符%s,定义符号常量,,strlen()获取字符串长度,。

    【字符串】

    没有专门的字符串类型,是吧他存储在字符型数组中,数组最后一个字符为空字符'\0',c用他来标志字符串的结束,这个非打印字符不会被打印出来,但这意味着数组单元的长度必须比字符串的长度至少大一。

    【使用字符串】

    #include<stdio.h>
    int main(void)
    {
        char name[40];//定义字符数组
        printf("what's your name?\n");
        scanf("%s",name);//注意:输入字符串时没有用到&符号
        printf("Hello %s !",name);   
        return 0;
    }

     

     

    注意:scanf()读取时会在遇到的第一个空格,制表符,换行符处停止。

    【字符和字符串】

    字符'x'是基本类型(char),存储为[x]

    字符串"x"是派生类型(char数组),存储为[x][\0]

    【strlen()函数】

    sizeof运算符,以字节为单位给出数据大小,

    strlen()函数,以字符为单位给出字符串长度,

    一个字符占一个字节,但这他们得出的结果并不一样。

     
    #include<stdio.h>
    #include<string.h>//提供strlen()函数的原型 ,他包含了许多与字符串相关的函数的原型 
    #define PRAISE "what a marvelous name!"
    int main(void)
    {
        char name[40];
        printf("what's your name?\n");
        scanf("%s",name);
        printf("Hello %s !",name);
        
        printf("your name of %d letters occupies %d memory cells.\n",strlen(name),sizeof name ); 
        printf("the phrase of praise has %d letters.\n",strlen(PRAISE));
        printf("and occupies %d memory cells.\n",sizeof PRAISE );
        
        return 0;
    }

     

    从这个例子可以看到,sizeof得到的是数据占用的大小,即使、申请的字符数组没有填满,也算作他的大小,自然地字符串末尾的非打印字符'\0'也算作占用的大小。

    而strlen()就是计算字符串的长度而已,当然也就不包括'\0'。

    注:size可以带()也可以不带,当需要获取某个类型大小时圆括号是必须的,但某个具体量(如6.28,"Hello")时则可有可无。

    【常量和C预处理器】

    #define PI 3.14159//定义一个符号常量 
    #define BEEP '\a'
    #define OOPS "now you have done it !"
    #define COST 3

    这是在C预处理器完成的,注意要大写常量。

    const修饰符:const关键字可以吧一个变量声明转换成常量声明,使其成为只读值,

    这种方式更为灵活。

    const int SCORE = 89;//SCORE是一个值为89的符号常量

    系统定义的常量:头文件limits.h和float.h分别提供整型和浮点型

    //例如limits.h文件包含下面类似的行
    #define INT_MAX +32767
    #define INT_MIN -32768

    【研究和利用printf()和scanf()】

     

     仅允许非商业转载,转载请注明出处:

    https://i.cnblogs.com/EditPosts.aspx?postid=7082749

  • 相关阅读:
    Python3学习笔记(十七):requests模块
    fiddler(四)、断点(转)
    fiddler(三)、会话框添加显示请求方法栏
    PostgreSQL12同步流复制搭建-同步不生效的问题、主库恢复后,无法与新主库同步问题
    PostgreSQL的count(*) count(1) count(列名)的区别
    CentOS系统日志(转)
    常用PostgreSQL HA(高可用)工具收集
    转-性能优化中CPU、内存、磁盘IO、网络性能的依赖
    PostgreSQL查询数据库中包含某种类型的表有哪些
    PostgreSQL中with和without time zone两者有什么区别
  • 原文地址:https://www.cnblogs.com/Archimedes/p/7082749.html
Copyright © 2020-2023  润新知