凯撒密码

来源:互联网 发布:台湾衰落知乎 编辑:程序博客网 时间:2024/05/17 01:32

题目1:给定一个字符串,把字符串内的字母转换成该字母的下一个字母,a换成b,z换成a,Z换成A,如aBf转换成bCg,字符串内的其他字符不改变,给定函数

void StringChange(const char *input,char *output)

其中input是输入字符串,output是输出字符串

#include <iostream>#include <string.h>using namespace std;void StringChange(const char *input,char *output){    const char *p=input;    while(*p!='\0')    {        if(isalpha(*p))        {            if('z'==*p)            {                *output++='a';            }            else if('Z'==*p)            {                *output++='A';            }            else            {                *output++=*p+1;            }        }        else        {            *output++=*p;        }        p++;    }    *output='\0';}int main(){    char *input="zhldD_LK?DLJLS";    char *output=new char[strlen(input)+1];    StringChange(input,output);    cout<<output<<endl;    return 0;}

运行结果:



题目2:求一个整型数字中有没有相同的部分,例如12389123这个整型数字中相同的部分是123,相同部分至少应该是2位数,如果有相同部分返回1,否则返回0

#include <iostream>using namespace std;int Same(int num){    int numArr[15];    int n=0;    //把num按位存储在数组里    while(num)    {        numArr[n]=num%10;        num/=10;        n++;    }    for(int i=0;i<n-1;i++)    {        for(int j=i+1;j<n-1;j++)            if(numArr[i]==numArr[j]&&numArr[i+1]==numArr[j+1])                return 1;    }    return 0;}int main(){    int num=11186123;    cout<<Same(num)<<endl;    return 0;}


0 0