程序运行如图
显示字符,并在字符尾部和开头分别显示字符个数!代码:
#include <stdio.h>
#include<string.h>
int main (void)
{
char namea [20];
char nameb [20];
printf("你好,请输入你的名:");
scanf ("%s",namea);
printf("你好,请输入你的姓:");
scanf ("%s",nameb);
printf("%s,%s\n",namea,nameb);
printf("%*d %*d\n", strlen(nameb),strlen(nameb),strlen(namea),strlen(namea));
printf("%s,%s\n",namea,nameb);
printf("%-*d %-*d\n", strlen(nameb),strlen(nameb),strlen(namea),strlen(namea));
return 0;
}
其中不明白printf("%*d %*d\n", strlen(nameb),strlen(nameb),strlen(namea),strlen(namea)); 这段代码的用法,望高手解答下!!!
printf中 * 符号表示人为指定输出表达式的长度!
所以第二句的代码,是为了保证和第一句对齐。。
首先你得知道
以上控制宽度的是一个常量,当然也能用一个变量来控制,
printf("%*d", 9, 10);第一个参数9就是控制宽度为9,输出的数字为10printf("%*d %*d\n", strlen(nameb),strlen(nameb),strlen(namea),strlen(namea));按照strlen(nameb)的宽度输出strlen(nameb)这个数字按照strlen(namea)的宽度输出strlen(namea)这个数字
strlen(nameb),strlen(nameb),strlen(namea),strlen(namea)
那为什么这行代码strlen(nameb),strlen(namea)连续2次呢?
和2个%*d对应
本回答被提问者和网友采纳