关于字符串和格式化输入输出的学习

      我想先说说sizeof运算符和strlen()函数,sizeof它是以字节为单位给出数据的大小。而strlen函数是以字符串为单位给出字符串的长度。我吧这个弄清楚花了那么一点点时间。。。所以我觉得还是有必要讲一下。
#include<stdio.h>
#include<string.h>
int main()
{
    char name[20];

    printf("What's your name?\n");
    scanf("%s",name);
    printf("Your name has %d words,",strlen(name));
    printf("and occupies %d memory cells.\n",sizeof(name));

    return 0;
}


      我认为还有一个重点就是,浮点型的输出。

       首先,把小数记数法以指数记数法打印:

#include<stdio.h>
int main()
{
    float a=0;

    printf("input an number:");
    scanf("%f",&a);
    printf("The input is %e",a);

    return 0;
}

       然后,就是特定的输出形式。也就是如何使用精度说明符。我发现用精度说明符打印字符串和数字表达的意思是不一样的。

       下面这个是打印数字的,发现一个很神奇的事(个人认为。。。),就是程序中第一行的输出,无论%后面有多少空格,打印出来的只有一个。还有我不知道%5.3d%05.3d到底有什么区别~~

#include<stdio.h>
int main()
{
    printf("**%d**% d**% d**\n",4,4,-4);
    printf("**%5d**%5.3d**%05d**%05.3d\n",6,6,6,6);
    return 0;
}


       还有打印字符串的,下面这个程序的输出就很有意思,精度出现小数点的时候,之输小数点后.55个字符。

#include<stdio.h>
#define BLURB "Authentic imitation!"
int main()
{
    printf("/%2s/\n",BLURB);
    printf("/%24s/\n",BLURB);
    printf("/%24.5s/\n",BLURB);
    printf("/%-24.5s/\n",BLURB);
        return 0;
 }

       其实下面这个程序让我特别费解,他的意思是在scanf()中把*放在%和说明符的字母之间,他可以使函数跳过相应的项目。但是既然要跳过,直接不输入不就可以了么。。。

#include<stdio.h>
int main()
{
    int n;

    printf("Please enter three integers:\n");
    scanf("%*d %*d %d",&n);
    printf("The last integer was %d\n",n);
    return 0;
}

      好了,这一章的学习差不多就是这些,还有什么遗漏的也是不可避免的,表喷,所以还是先匿了。。。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值