C语言中 strlen函数用法的问题

问题回答转自:http://zhidao.baidu.com/link?url=_-3fJi5zXvo2XDlWOqxSwtxgKAXWU_kVhvH2YUb2hcM2ibUaOFaFm64SJ5giY0IQzz-b4QOIuWR1KU0aj_-Y4K


看c primer plus的时候遇到一道编程题:

5.编写一个程序,首先要求用户输入名字,然后要求用户输入姓氏。在一行打印输入的姓名,在下行打印
每个名字中字母的个数。把字母个数与相应名字的结尾对齐,如下所示:
Melissa Honeybee
7 8
然后打印相同的信息,但是字母个数与相应单词的开始对齐。


#include <stdio.h>
#include <string.h>
int main(void)
{
  char sumame[20],firstname[20];
  printf("Please input your firstname and sumame.");
  scanf("%s",firstname);
  scanf("%s",sumame);
  printf("%s %s.\n",firstname,sumame);
  printf("%*d%*d\n",strlen(firstname),strlen(firstname),strlen(sumame),
          strlen(sumame));
return 0;

其中的strlen和*的意思:

printf("%*d%*d\n",strlen(firstname),strlen(firstname),strlen(sumame), strlen(sumame));
这个是输出匹配的问题。
举个例子
printf("%5d",5); 就会给你5个空间输出5,前面4个空格,然后输出5.
printf("%*d",5,5);和上面一样,利用*匹配5控制输出宽度。就是四个空格5.
 
同理上面的第一个strlen是作为输出宽度而存在的,也就是说给你字符串长度个空间,用于存放字符串长度的变量。
比如输入
we
women
就相当于
printf("%*d%*d",2,2,5,5);
相当于
printf("%2d%5d",2,5);输出   【1个空格】2【4个空格】5

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值