2023,11.5周日c语言学习博客

文章介绍了C语言中scanf函数对输入字符串处理的局限性,fgets和strlen函数的作用,以及sizeof运算符的应用,包括处理字符数组、字符串和printf输出控制。
摘要由CSDN通过智能技术生成

1,scanf对于输入字符串%s的处理:

scanf只会读取字符串中的第一个单词。

遇到空格就停止读取。

2,了解fgets()函数:

3,了解strlen()函数:

strlen()函数存储在<string.h>头文件中

strlen()函数主要作用是给出字符串中的字符长度。注释:sizeof为运算符,它以字节为单位给出对象的大小。

实用举例:

char name[40];

scanf("%s",name);

用户键盘输入:Serendipity Chance

printf("Your name of %zd letters occupies %zd memory cells.\n",strlen(name),sizeof(name));

11,40.

sizeof运算符报告 name数组有40个存储单元。但是只有前11个单元用来存储Serendipity。所以strlen()得出的结果是11。name数组里的第12个单元存储空字符。(注释:空字符:\0)strlen()并未将其计入。

如果定义一个字符常量

#define PRAISE "You are an extraordinary being."

printf("......"strlen(PRAISE),sizeof(PRAISE))

31.32

sizeof运算符给出的值更大,因为它把字符串末尾不可见的空字符也计算在内。

strlen把空格也算进去。

4,#define指令。定义字符用单引号,定义字符串用双引号。

5,printf的输出。

输出单个字符:

printf("%c",'char');

输出字符串:

printf("%s","character");

6,printf()的返回值

它返回打印字符的个数。如果有输出错误,printf()则返回一个负值。

例如:

int rv;

rv=printf("%d F is water's boiling point.\n",bph29);

32

它的计算针对所有字符数,包括空格和不可见的换行符(\n)。

7,printf()的转换说明以及标记

8,scanf的使用

假设scanf()根据一个%d转换说明读取一个整数。scanf()函数每次读取一个字符,跳过所有的空白字符,直到遇到第一个非空白字符才开始读取。

如果使用字符宽度,scanf()函数会在字段结尾或者第一个空白字符处停止读取(满足两个条件之一即停止)

如果第一个非空白字符是A而不是数字,scanf()函数就会停在那里,一直无法越过A读取下一个字符。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值