上機時間兩小時,3道題
1 字串轉換
問題描述:
將輸入的字符串(字符串僅包含小寫字母‘a’到‘z’),按照如下規則,循環轉換后輸出:a->b,b->c,…,y->z,z->a;若輸入的字符串連續出現兩個字母相同時,后一個字母需要連續轉換2次。例如:aa 轉換為 bc,zz 轉換為 ab;當連續相同字母超過兩個時,第三個出現的字母按第一次出現算。
要求實現函數:
void convert(char *input,char* output)
【輸入】 char *input , 輸入的字符串
【輸出】 char *output ,輸出的字符串
【返回】 無
示例
輸入:char*input="abcd"
輸出:char*output="bcde"
輸入:char*input="abbbcd"
輸出:char*output="bcdcde"
void convert(char *input,char *output)
{
char c='\0';
int tag=0;
int len=strlen(input);
for(int i=0;i
{
if(input[i]!=c)//當前字符與前一個字符不相等,則該字符+1
{
output[i]=(input[i]-'a'+1)%26+'a';
c=input[i];
tag=1;
}else
{
if(tag==1)//當前字符與前一個字符相等,且前面只有一個字符相同
{
output[i]=(input[i]-'a'+2)%26+'a';
c='\0';
tag=0;
}else//當前字符與前一個字符相等,且前面已有2n個字符相同。則按第一次出現算
{
output[i]=(input[i]-'a'+1)%26+'a';
c=output[i];
tag=1;
}
}
}
}
void convert(char *input,char *output)
{
char c='\0';
int tag=0;
int len=strlen(input);
for(int i=0;i
{
if(input[i]!=c)//當前字符與前一個字符不相等,則該字符+1
{
output[i]=(input[i]-'a'+1)%26+'a';
c=input[i];
tag=1;
}else
{
if(tag==1)//當前字符與前一個字符相等,且前面只有一個字符相同
{
output[i]=(input[i]-'a'+2)%26+'a';
c='\0';
tag=0;
}else//當前字符與前一個字符相等,且前面已有2n個字符相同。則按第一次出現算
{
output[i]=(input[i]-'a'+1)%26+'a';
c=output[i];
tag=1;
}
}
}
}
金山職業技術學院對比四川汽車職業技術學院哪個好 附分..
時間:2025-05-22 09:08:12成都銀杏酒店管理學院在重慶高考招生計劃人數和專業代..
時間:2025-05-22 09:05:01四川上山東理工大學多少分 分數線及排名
時間:2025-05-22 09:01:18江西高考理科533分排名多少 排名多少位次
時間:2025-05-22 08:57:21大連東軟信息學院對比甘肅民族師范學院哪個好 附分數線..
時間:2025-05-22 08:53:39廣東高考455至460分左右物理可以上什么大學
時間:2025-05-22 08:49:52