wzkl.net
当前位置:首页 >> C语言中%*s%s%*s的作用 >>

C语言中%*s%s%*s的作用

却决于在scanf中使用还是在printf中使用 如果在scanf中使用,则添加了*的部分会被忽略,不会被参数获取 在printf中使用,则代表带*的%s由之后的参数决定输出字符串的最小字符宽度

这是C语言的格式输出,%c,%s这些代表你要输出的数据的数据类型:%d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %0 无符号以八进制表示的整数 ...

有'-'是左对齐,在右边补空格,没有'-’是右对齐,在左边补空格 比如 : #include int main(){ char str[100] = "hello"; printf("%-9s", str); putchar('*'); printf("%9s", str); return 0; } 输出的结果是: hello * hello请按任意键继续. . .

二者都是从终端读入字符串。功能为 1、 gets功能为读入一行,并将换行符转换为字符串结束符。 2、 scanf("%s",s);读入时,遇到空白字符,包括空格,制表符,换行符时均会停止输入。 从功能上可以看出不同之处: 1 终止条件不同。gets只有遇到\n...

gets(s);是以回车作为字符串的结束 scanf("%s",s);是以空格、Tab、回车作为字符串的结束。所以,scanf("%s",s);不能输出包含空格的字符串。

有错误:char *S="china";中的S是大写的,printf中的变量列表都是小写s,所以没有匹配变量,编译都过不了,要知道C是大小写敏感语言。若不计此问题,输出是china,c,n。因为%s对应从指针s值开始的字符串;中间的%c对应*s输出指针s的内容,即一个...

scanf("\n%s",&z);//scanf()不用输入格式scanf("%s",&z)char d,s;//d为字符串。

因为你没有给指针s指向地址,s就是一个野指针。 就好比你定义了一个 int *a;*a=2;这是错的。

可以用变量 比如 int i = 10; char *s = "abcd"; printf("%*s", i, s); 用%*s 表示变量。 后续第一个参数用变量值。 下一个 用实际的字符串。

C语言中,printf函数处理%s的函数原型如下: case 's': s = va_arg(args, char *); if (!s) s = ""; len = strnlen(s, precision); if (!(flags & LEFT)) while (len < field_width--) *str++ = ' '; for (i = 0; i < len; ++i) *str++ = *s++; ...

网站首页 | 网站地图
All rights reserved Powered by www.wzkl.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com