标题:关于Printf()中的控制符问题
只看楼主
yurec
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2005-7-5
 问题点数:0 回复次数:4 
关于Printf()中的控制符问题

题目 首先要求用户输入名字 然后姓。在一行打印每个名字中字母数字,把字母数字与相对应名字的结尾对齐 如: Melissa Honeybee 7 8 解答 #include "Stdio.h" #include "Conio.h"

int main(void) { int ming_m,zi_z; char ming[10],zi[10]; scanf("%s %s", ming,zi); ming_m = strlen(ming); zi_z = strlen(zi); printf("%7d\t%8d",ming_m,zi_z); getch(); return 0; } 这样做的。但是如果 用户输入的不是Melissa[7个字]Honeybee[8个字]那程序就会乱套。请问怎么处理printf("%7d\t%8d",ming_m,zi_z);这条语句?

搜索更多相关主题的帖子: 符问题 Printf ming Melissa 
2005-09-23 16:59
jackrain
Rank: 1
等 级:新手上路
帖 子:182
专家分:0
注 册:2005-9-4
得分:0 
先用sprintf格式化一下。
char buffer[20];
下面加在printf前
sprintf(buffer,"%%%dd %%%dd",ming_m,zi_z);
然后printf改成printf(buffer,ming_m,zi_z);
不过前提是输入的时候两个字符串之间是用一个空格隔开的。

程序和身体一样,健壮,再健壮! 我爱C++
2005-09-23 17:10
yurec
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2005-7-5
得分:0 
谢谢 jackrain 帮助。
2005-09-23 17:21
牛虻
Rank: 1
等 级:新手上路
威 望:1
帖 子:472
专家分:0
注 册:2004-10-1
得分:0 

加个循环输出空格

用得着那么麻烦么?


土冒
2005-09-23 22:39
wangfeng2500
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2006-8-29
得分:0 
程序代码:
#include <stdio.h>
#include "string.h"
int main(void)
{
    char name[20];
    char xing[20];
    scanf("%s %s",name,xing);
    int i = strlen(name);
    int j = strlen(xing);
    printf("%s %s\n",name,xing);
    for(int m =0; m <i-1; m++)
        printf(" ");
    printf("%d",i);
    for( m =0; m <j; m++)
        printf(" ");
    printf("%d\n",j);
    printf("%s %s\n",name,xing);
    printf("%d",i);
    for( m =0; m < i; m++)
        printf(" ");
    printf("%d\n",j);
    return 0;
}
2008-11-09 20:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-28491-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.615439 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved