getchar获取单个字符 获取所有字符需要循环的方法 ``` int main() { int ch = 0; while ((ch = getchar()) != EOF) { putchar(ch); } return 0; } ``` scanf与gets函数最大的区别在于:**用gets可以输入带空格的字符串,用scanf不可以输入带空格的字符串。** ``` #include int main() { char a[20] = { 0 }; scanf("%s", a); printf("%s\n",a); return 0; } ``` 输入a a返回 a ``` #include int main() { char a[20] = { 0 }; gets(a); printf("%s\n",a); return 0; } ``` 输入a a返回 a a 事实上,gets不仅能接收空格,还能接收Tab制表符;scanf则既不能接收空格,也不能接收Tab。 两者都是遇到回车就结束接收。 --- 扩展 gets()函数 因为安全方面的原因,从C11起被废除了 gets函数不会再开始读字符串之前跳过空白字符(scanf会跳过) gets函数会持续读入,直到找到换行符才停止(scanf函数会在任意空白字符处停止) gets函数会忽略换行符,不会把它存储到数组中,并用空字符('\0')代替换行符 数组越界 把字符读入数组时,scanf函数和gets函数都无法检测数组合适被填满。当数组越界时,会导致未定义的行为。 可以使用%ns代替%s,数字n指出可以存储的最多字符数。 对比 getchar优点 getchar函数比scanf函数的执行速度更快 原因: scanf函数是设计用来按不同的格式读不同类型数据的,getchar比scanf要简单的多 为了额外的速度提升,通常getchar函数是作为宏来实现的 scanf优点 相对与getchar可以更方便写入字符串 可以改变转换说明读取输入个类型的数据 --- 1.printf()函数是格式化输出函数,书写格式为 printf("<格式化字符串>", <参量表>); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符,用来确定输出内容格式。 2.puts()函数用来向标准输出设备(屏幕)写字符串并换行。其调用格式为:puts(s); 其中s为字符串变量(字符串数组名或字符串指针)。相当于printf("%s\n",s); puts()函数只能输出字符串,不能输出数值或进行格式变换。 printf显示更清晰,puts运行更快。 Loading... getchar获取单个字符 获取所有字符需要循环的方法 ``` int main() { int ch = 0; while ((ch = getchar()) != EOF) { putchar(ch); } return 0; } ``` scanf与gets函数最大的区别在于:**用gets可以输入带空格的字符串,用scanf不可以输入带空格的字符串。** ``` #include<stdio.h> int main() { char a[20] = { 0 }; scanf("%s", a); printf("%s\n",a); return 0; } ``` 输入a a返回 a ``` #include<stdio.h> int main() { char a[20] = { 0 }; gets(a); printf("%s\n",a); return 0; } ``` 输入a a返回 a a 事实上,gets不仅能接收空格,还能接收Tab制表符;scanf则既不能接收空格,也不能接收Tab。 两者都是遇到回车就结束接收。 --- 扩展 gets()函数 因为安全方面的原因,从C11起被废除了 gets函数不会再开始读字符串之前跳过空白字符(scanf会跳过) gets函数会持续读入,直到找到换行符才停止(scanf函数会在任意空白字符处停止) gets函数会忽略换行符,不会把它存储到数组中,并用空字符('\0')代替换行符 数组越界 把字符读入数组时,scanf函数和gets函数都无法检测数组合适被填满。当数组越界时,会导致未定义的行为。 可以使用%ns代替%s,数字n指出可以存储的最多字符数。 对比 getchar优点 getchar函数比scanf函数的执行速度更快 原因: scanf函数是设计用来按不同的格式读不同类型数据的,getchar比scanf要简单的多 为了额外的速度提升,通常getchar函数是作为宏来实现的 scanf优点 相对与getchar可以更方便写入字符串 可以改变转换说明读取输入个类型的数据 --- 1.printf()函数是格式化输出函数,书写格式为 printf("<格式化字符串>", <参量表>); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符,用来确定输出内容格式。 2.puts()函数用来向标准输出设备(屏幕)写字符串并换行。其调用格式为:puts(s); 其中s为字符串变量(字符串数组名或字符串指针)。相当于printf("%s\n",s); puts()函数只能输出字符串,不能输出数值或进行格式变换。 printf显示更清晰,puts运行更快。 Last modification:September 22, 2022 © From the Internet Like 如果觉得我的文章对你有用,请随意赞赏