题目描述:
输入一个字符串,将其中大写字母转换为对应小写字母之后的第五个字母,
若原始大写字母为V~Z, 则转换为对应小写字母的值减21。
其他字符不变,输出转换后的字符串。
例如,对于字母A,则转换为小写字母f;若形参是字母W,则转换为小写字母b。
要求实现函数:
void TransferString(const char * pInputStr, long lInputLen, char * pOutputStr);
输入:
pInputStr: 输入字符串
lInputLen: 输入字符串长度
输出:
pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;
注意:只需要完成该函数功能算法,中间不需要有任何IO的输入输出。
示例 :
输入:“Axs3mWss”
输出:“fxs3mbss”
代码:
#include <iostream>
using namespace std;
void TransferString(const char* pInputStr, long lInputLen, char* pOutputStr)
{
long i;
for (i = 0; i < lInputLen; i++)
{
if (pInputStr[i] >= 'A'&&pInputStr[i] <= 'U')
pOutputStr[i] = char(int(pInputStr[i]) + 'a' - 'A' + 5);
else if (pInputStr[i] >= 'V'&&pInputStr[i] <= 'Z')
pOutputStr[i] = pInputStr[i] + 'a' - 'A' - 21;
else
pOutputStr[i] = pInputStr[i];
}
}
int main()
{
long i;
const char* InputStr = "Axs3mWss";
long len = strlen(InputStr);
char* OutputStr = (char*)malloc(len*sizeof(char));
for (i = 0; i < len; i++)
cout << InputStr[i];
cout << endl;
TransferString(InputStr, len, OutputStr);
for (i = 0; i < len; i++)
cout << OutputStr[i];
cout << endl;
cin.get();
return 0;
}