首页 > 代码库 > 华为历年试题(字符串2)

华为历年试题(字符串2)

题目描述:

输入一个字符串,将其中大写字母转换为对应小写字母之后的第五个字母,

 

若原始大写字母为V~Z, 则转换为对应小写字母的值减21。

 

其他字符不变,输出转换后的字符串。

 

例如,对于字母A,则转换为小写字母f;若形参是字母W,则转换为小写字母b

 

要求实现函数:

void TransferString(const char * pInputStr, long lInputLen, char * pOutputStr);

 

【输入】 pInputStr:  输入字符串

 

         lInputLen:  输入字符串长度        

 

【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;

 

【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出

 

示例

输入:“Axs3mWss”

 

输出:“fxs3mbss”

#include<string>using namespace std;void TransferString(const char * pInputStr, long lInputLen, char * pOutputStr){   unsigned len = strlen(pInputStr);   unsigned j=0;   for(unsigned i=0;i<len;i++)   {      if(pInputStr[i]>=A && pInputStr[i]<V)      {         pOutputStr[j++]=pInputStr[i]+a-A+5;      }      else if(pInputStr[i]>=V && pInputStr[i]<=Z)      {        pOutputStr[j++]=pInputStr[i]+a-A-21;            }      else      {        pOutputStr[j++]=pInputStr[i];            }   }   pOutputStr[j]=\0;}void main(){    const char* input = "Axs3mWss";    char output[20];     TransferString(input, 56,output);    puts(output);    }