C语言难题!!求大神帮忙看看!!拜托了!

TMDMZZNQ 2020-06-01 09:04:32
...全文
111 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
hgggg2003 2020-06-02
  • 打赏
  • 举报
回复


void EncryptEvenNumberWord(void)
{
char cArraySrc[] = "This is a string test: encrypt Even number word.";
char *pcSrc = cArraySrc;
char *pcDst = cArraySrc;
char cTemp = 0;
bool bResetStart = true;
int iIndexChar = 0;
int iIndexWordStart = 0;
int iIndexWordStop = 0;
int iIndexWord = 0;
int iWordLen = 0;
printf("src[%s]", cArraySrc);

while(0 != *pcSrc)
{
//单词处理
if(!((('a' <= *pcSrc) && ('z' >= *pcSrc)) || (('A' <= *pcSrc) && ('Z' >= *pcSrc))))
{
bResetStart = true;
iWordLen = iIndexWordStop - iIndexWordStart;

//单词字母个数不是偶数,不处理
if(0 != iWordLen % 2)
{
pcSrc ++;
iIndexChar ++;
iIndexWordStop ++;
continue;
}

//单次加密
//a-r o-z ;o-r之间的需如何处理?
//a-r 左移一位
if(((pcDst[iIndexWordStart] >= 'a') && (pcDst[iIndexWordStart] <= 'r'))
|| ((pcDst[iIndexWordStart] >= 'A') && (pcDst[iIndexWordStart] <= 'R')))
{
cTemp = pcDst[iIndexWordStart];

for(iIndexWord = iIndexWordStart; iIndexWord < iIndexWordStop; iIndexWord++)
{
pcDst[iIndexWord] = pcDst[iIndexWord + 1];
}

pcDst[iIndexWordStop - 1] = cTemp;
}
//s-z 右移一位
else if(((pcDst[iIndexWordStart] >= 's') && (pcDst[iIndexWordStart] <= 'z'))
|| ((pcDst[iIndexWordStart] >= 'S') && (pcDst[iIndexWordStart] <= 'Z')))
{
cTemp = pcDst[iIndexWordStop - 1];

for(iIndexWord = iIndexWordStop - 1; iIndexWord > iIndexWordStart; iIndexWord--)
{
pcDst[iIndexWord] = pcDst[iIndexWord - 1];
}

pcDst[iIndexWordStart] = cTemp;
}
}
else if((true == bResetStart) && ((('a' <= *pcSrc) && ('z' >= *pcSrc)) || (('A' <= *pcSrc) && ('Z' >= *pcSrc))))
{
bResetStart = false;
iIndexWordStart = iIndexChar;
}

pcSrc ++;
iIndexChar ++;
iIndexWordStop ++;
}

printf("dst[%s]", cArraySrc);
}

69,372

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧