zoukankan      html  css  js  c++  java
  • 格子中输出

    StringInGrid函数会在一个指定大小的格子中打印指定的字符串。
    要求字符串在水平、垂直两个方向上都居中。
    如果字符串太长,就截断。
    如果不能恰好居中,可以稍稍偏左或者偏上一点。
    下面的程序实现这个逻辑,请填写划线部分缺少的代码。

    #include <stdio.h>
    #include <string.h>
    
    void StringInGrid(int width, int height, const char* s)
    {
    	int i,k;
    	char buf[1000];
    	strcpy(buf, s);
    	if(strlen(s)>width-2) buf[width-2]=0;
    	
    	printf("+");
    	for(i=0;i<width-2;i++) printf("-");
    	printf("+
    ");
    	
    	for(k=1; k<(height-1)/2;k++){
    		printf("|");
    		for(i=0;i<width-2;i++) printf(" ");
    		printf("|
    ");
    	}
    	
    	printf("|");
    	
    	printf("%*s%s%*s",(11分));  //填空
    	          
    	printf("|
    ");
    	
    	for(k=(height-1)/2+1; k<height-1; k++){
    		printf("|");
    		for(i=0;i<width-2;i++) printf(" ");
    		printf("|
    ");
    	}	
    	
    	printf("+");
    	for(i=0;i<width-2;i++) printf("-");
    	printf("+
    ");	
    }
    
    int main()
    {
    	StringInGrid(20,6,"abcd1234");
    	return 0;
    }
     

    对于题目中数据,应该输出:

    +------------------+
    |                  |
    |     abcd1234     |
    |                  |
    |                  |
    +------------------+
    

    (如果出现对齐问题,参看【图1.jpg】)
    注意:只填写缺少的内容,不要书写任何题面已有代码或说明性文字。

    %*s的意思这里应该是打印几个空格吧,是整型常量加字符串,第一次遇到,记录一下。

  • 相关阅读:
    SqlBulkCopy实现大容量数据快速插入数据库中
    防查询语句注入漏洞攻击
    wpf中数据绑定(Datacontext)的应用
    WPF中StackPanel的使用方法
    可空类型的使用《二》
    关于可空数据类型的介绍
    C# 之泛型详解
    C# 之String以及浅拷贝与深拷贝
    C# 小软件部分(二)
    MVC 之HTML辅助方法
  • 原文地址:https://www.cnblogs.com/8023spz/p/8446034.html
Copyright © 2011-2022 走看看