作业帮 > 综合 > 作业

C++编写四道程序题!

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/07 22:37:49
C++编写四道程序题!
1、输入一个年月日,输出该年月日是这年里的第几天.2、输入一个字符串,在该字符串的某个位置插入一个子串,输出插入的位置以及插入子串后的字符串.3、输入一个字符串,在该字符串的某个位置删除一个子串,输出删除的位置以及删除后的字符串.4、输入一个字符串,在该字符串中查找一个子串,输出该子串的位置.我写了好像不太可以,QAQ
1、
#include <iostream>
#include <windows.h>
using namespace std;
/* 以公元阳历来计算(非农历) */
int _MONTH[]={{31},{28},{31},{30},{31},{30},{31},{31},{30},{31},{30},{31}};
int days(const int *m,const int *day)
{
    int i,md=0;
    unsigned int d;
\x05
    for(i=0;i<(*m-1)&&(i<11);i++)
        md=md+_MONTH[i];
    d=md+(*day);
    return (int)((d+365)-365);
}
void display(const int y,const int m,const int d)
{
  cout<<y<<"年"<<m<<"月"<<d<<"日"<<"是今年的第"<<days(&m,&d)<<"天"<<endl;
}
int main()
{
\x05int month,day,year;
RESET:
\x05month=day=1;
\x05cout<<"年份:";
\x05cin>>year;
\x05cout<<"月份:";
\x05cin>>month;
\x05cout<<"日期:";
\x05cin>>day;
\x05
\x05while((month<1||month>12)||(day<1||day>31))
\x05{
\x05\x05cout<<"月份或日期有误,请重新输入!"<<endl;
\x05\x05fflush(stdin);
\x05\x05Sleep(3000);
\x05\x05goto RESET;
\x05}
\x05display(year,month,day);
  return 0;
}
2、

#include <iostream>
using namespace std;

#define  MAX_LONG_S 100
static char HandleString[MAX_LONG_S];
void Reset()
{
\x05for(int i=0;i<MAX_LONG_S;i++) HandleString[i]='\0'; 
}

/* 
  函数功能: 在目标字符串中把新的子串插入指定的位置 
  函数结果: 返回插入后的新字符串

*/

char *InsertSubString(const char *TargetString,const char *NewString, int Start)
{
   int i,r,newLen,moveE,v,Back;
   i=r=newLen=moveE=v=Back=0;
   moveE=strlen(NewString);

   Reset(); /* 重置全局静态数组 */

   while (*TargetString)
   {
\x05   HandleString[i]=*TargetString++;/* 把目标字符串交给全局数组 */ 
\x05   i++;
\x05   r++;
   }
  
\x05for(v=--i;v>=Start;v--)
\x05{
       HandleString[v+moveE]=HandleString[v];
\x05}
\x05while(*NewString)
\x05{
      HandleString[Start++]=*NewString++;
\x05}
 
   
   return HandleString; /* 返回处理过的新串*/
}
int main()
{
  char ts[MAX_LONG_S],ss[10]="123";
  cout<<"请输入字符串:";
  cin>>ts;
  cout<<endl<<"插入子串前:"<<ts<<endl;
 
  InsertSubString(ts,ss,1);
  cout<<"插入子串后:"<<HandleString<<endl;
  return 0;
}


说明:后面几个要求跟第2个例子的实现原理一样.你可以自己尝试改装下.