一个字母数字混号的处理


#include "stdafx.h"
#include <iostream>
using namespace std;

bool HandleChar(char* element,char heightElement)
{
 char tmpElement = *element;
 if (tmpElement >='A' && tmpElement <='Z')
 {
  if (++tmpElement<='Z')
  {
   *element=tmpElement;
    return true;
  }
  else
  {
   *element='0';
   return false;
  }
 }
 else
 {
  if (++tmpElement<='9')
  {
   *element=tmpElement;
   return true;
  }
  else
  {
   if (heightElement=='Z')
   {
    *element='A';
    return true;
   }
   else
   {
    *element='0';
    return false;
   } 
  } 
 }
}

bool PlusStr(char* str)
{
 int strLen=strlen(str)-1;
 for (int i=strLen;i>=0;i--)
 {
  if (i==0)
  {
   if (!HandleChar(&str[i],'Z')) return false;
  }
  else if (HandleChar(&str[i],str[i-1])) break;
 }
 return true;
}

int _tmain(int argc, _TCHAR* argv[])
{
 char str[]="0001";
 //TO UPPER FIRST THEN CALL
 while(PlusStr(str))
 {
  cout<<str<<endl;
 }
 system("pause");
 return 0;
}

posted on 2012-11-22 23:57  西瓜头  阅读(286)  评论(0)    收藏  举报