鱼C论坛

 找回密码
 立即注册
查看: 2415|回复: 2

[已解决]%s 和%c的具体区别在什么地方

[复制链接]
发表于 2017-4-8 12:30:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include<stdlib.h>
  2. #include<stdio.h>
  3. int main()
  4. {
  5.         char i;
  6.         float j, k, q, z;
  7.         printf("请输入姓名:");
  8.         scanf_s("%c", &i);
  9.         printf("请输入身高(CM):");
  10.         scanf_s("%f", &j);
  11.         printf("请输入体重(KG):");
  12.         scanf_s("%f", &k);
  13.         printf("==========正在转换=========\n");
  14.         q = j*0.39;
  15.         z = k*2.20;
  16.         printf("%c的身高是%.2f(in),体重是%.2f(lb)", i, q, z);
  17.         system("pause");
  18.         return 0;
  19. }
复制代码

这里的%c为什么不能用%s 代替? 不是说%c是字符%是字符串吗?
最佳答案
2017-4-8 15:30:48
c%是字符类型的格式,只能用于格式化一个字符变量,s%是字符串的格式,可用于格式化多个字符连起来,即字符串。多个字符组成就是字符串,C语言中字符串定义可以是char a[10];或者是char* a;又或者你包括了<string.h>这个头文件就可以string a;这样子的都可以用s%进行格式化,单个字符也可以使用s%格式化
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-4-8 13:09:09 | 显示全部楼层
因为你定义的变量 i 是一个 char 型变量,在这里占用1个字节。如果想写为%s的话,必须给i变量分配一定的内存空间才可以。
  1. #include<stdlib.h>
  2. #include<stdio.h>
  3. int main()
  4. {
  5.     char i[20]; //定义字符数组内存空间大小
  6.     float j, k, q, z;
  7.     printf("请输入姓名:");
  8.     scanf_s("%s", i, 20);  //scanf_s必须多加一个参数,这里20限定字符的长度包含'\0'
  9.     printf("请输入身高(CM):");
  10.     scanf_s("%f", &j);
  11.     printf("请输入体重(KG):");
  12.     scanf_s("%f", &k);
  13.     printf("==========正在转换=========\n");
  14.     q = j*0.39;
  15.     z = k*2.20;
  16.     printf("%s的身高是%.2f(in),体重是%.2f(lb)", i, q, z);  //注意%s
  17.     system("pause");
  18.     return 0;
  19. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-8 15:30:48 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
c%是字符类型的格式,只能用于格式化一个字符变量,s%是字符串的格式,可用于格式化多个字符连起来,即字符串。多个字符组成就是字符串,C语言中字符串定义可以是char a[10];或者是char* a;又或者你包括了<string.h>这个头文件就可以string a;这样子的都可以用s%进行格式化,单个字符也可以使用s%格式化
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-9 06:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表