从键盘获取一段字符串,将小写转大写、大写转小写。
int main()
{
char buf[64] = "";
printf("请输出一段小于64字节的字符串\n");
fgets(buf, sizeof(buf), stdin);
int len = strlen(buf);
for (int i = 0; i < len; ++i)
{
if (buf[i] >= 'a' && buf[i] <= 'z')
{
buf[i] -= 32;
}
else if (buf[i] >= 'A' && buf[i] <= 'Z')
{
buf[i] += 32;
}
}
printf("%s\n", buf);
system("pause");
return 0;
}
第一次打印时,我用的是%c,并没有打印出结果。查询资料之后,换成了%s,则可得到结果。
%c对应类型为char,%s对应类型为char *。即字符串。
用作输入时, 二者参数都要传char*型.,%c输入函数只会对一个字节空间赋值。而%s会一直赋值,直到输入中遇到空白字符为止。
用作输出时, %c传char类型,输出一个字符. %s传char*类型参数, 输出到\0为止。
一言以蔽之,%c格式符表示输出的是字符 ,%s格式符表示输出的是字符串。