Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2341901
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:03:44

#include
#define Character_Num 20          //最多输入字符的个数 可修改 程序中可任意输入N个字符
using namespace std;              //超过最多字符数 多余的将被舍弃
//=======================================类定义
class Character{

public:
Character();
void character_sq();          //排序
void character_bl();          //大写转小写            
void spacial_show();          //显示
    int get_lenth();
void show();
protected:
char ch[Character_Num+1]; //数组 长度为字符串长度+1 +1存放'/0'
};

//=====================================类定义结束

//=====================================类成员函数

Character::Character()               //构造函数
{
cout<<"输入一串字母:"<    cin.getline(ch,Character_Num+1,'\n');  
}

int Character::get_lenth()            //获得输入字符串的长度
{  
char *p=ch;
int lenth=0;
    while(*p!='\0')
{
++lenth;
p++;
}
return lenth;
}

void Character::spacial_show()     //三角形状输出字符串
{
char *ptr=ch;
      int len=get_lenth();
      int line=0;

      while(1)
  {
          if(line*(line+1)/2>=len)
          break;
          line++;
  }
      cout<      int temp=line;
      int index=0;


      while(*ptr!='\0')
  {
           int j=1;
           for(int i=1; i<2*line; i++)
   {
              if(i>=temp&&i<=line+index)
  {
                  if(j)
  {
                     if(*ptr=='\0')
                      break;
                      else
  {
                         cout<<*ptr;
                         ptr++;
                           j=0;
  }
  }
                else
{
                    cout<<"_";
                    j=1;
}
  }
                else
               cout<<" ";
   }
    cout<     temp--;
     index++;
  }
}

void Character::show()
{
cout<}

void Character::character_sq()    //输入字符串排序
{
   char temp;
//================================== 排序部分
   for(int i=0;ifor(int j=i;j{
if(ch[i]>ch[j])
{
temp=ch[i];
ch[i]=ch[j];
ch[j]=temp;
}
}
}

void Character::character_bl()      //输入字符串大写全换成小写
{

//==================================  //大写转化成小写
for(int k=0;k{
if(ch[k]>='A'&&ch[k]<='Z')  
{
ch[k]=ch[k]+32;
}
}

}

//====================================主函数
void main()
{
   Character a;
   cout<   a.character_bl();      //此处调用顺序不可乱,必须先调用大写转小写,然后再调用排序
   a.character_sq();
   a.show();

cout<<"处理后的输出是:"<    a.spacial_show();

}


--------------------next---------------------
#include
#define N 80
void UpperToLower(char *str) ;
void Queue(char *str) ;
void DelRepeat(char *str) ;
void PrintTriangle(char *str) ;
int main()
{
    char str[N] ;
    cin >> str ;
    UpperToLower(str) ;
    Queue(str) ;
    DelRepeat(str) ;
    PrintTriangle(str) ;
    return 0 ;
}
void UpperToLower(char *str)
{
    char *p ;
    for (p = str; *p; p ++)
        if (*p >= 'A' && *p <= 'Z')
            *p += 32 ;
}
void Queue(char *str)
{
    char *p, *q ;
    char tmp ;
    for (p = str; *(p + 1); p ++)
        for (q = p + 1; *q; q ++)
            if (*p > *q)
            {
                tmp = *p ;
                *p = *q ;
                *q = tmp ;
            }
}
void DelRepeat(char *str)
{
    char *p, *q ;
    p = str ;
    while (*p)
    {
        if (*(p + 1) == *p)
        {
            for (q = p; *q; q ++)
                *q = *(q + 1) ;
        }
        else
            p ++ ;
    }
}
void PrintTriangle(char *str)
{
    int i, j, k ;
    k = 0 ;
    for (i = 0; str[k]; i++)
    {
        for (j = 0; j < 10 - i; j ++)
            cout << " " ;
        for (j = 0; j < i + 1 && str[k]; j ++)
            cout << str[k++] << " " ;
        cout << endl ;
    }
}




--------------------next---------------------

阅读(1001) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~