700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > c语言中用后三个字母替换 C语言编程实现 将给定字符串中连续出现3次的小写字母替换

c语言中用后三个字母替换 C语言编程实现 将给定字符串中连续出现3次的小写字母替换

时间:2024-04-23 22:15:34

相关推荐

c语言中用后三个字母替换 C语言编程实现 将给定字符串中连续出现3次的小写字母替换

C语言编程实现,将给定字符串中连续出现3次的小写字母替换为改小写字母在字母表中的下一个字母

答案:4信息版本:手机版

解决时间 -05-20 06:14

已解决

-05-19 13:42

将给定字符串中连续出现3次的小写字母替换为改小写字母在字母表中的下一个字母,大写字母和其他字符不处理,仍然保留。要求最终输出的字符串中不再存在任何连续出现3次的小写字母。

int ChangeString(char *pInStr,char *pOutStr)

int 0:处理成功 -1:出现异常

例如

pInStr= "lIdddjilfff";

pOutStr= "lIejilg";

pInStr= "aaaabazzzAs";

pOutStr= "babaaAs";

pInStr= "aaaaaaaaacc";

pOutStr= "d";

全部回答

1楼

-05-19 18:50

#include

intChangeString(char*pInStr,char*pOutStr)

{

intpos=0,change=0;

boolt;

chara[100],b[100],*instr=a,*outstr=b;

while(true)

{

*(instr+pos)=*(pInStr+pos);

if(*(pInStr+pos)=='\0')

break;

pos++;

}

while(true)

{

change=0;

pos=0;

for(intn=0;*(instr+n)!='\0';n++)

{

t=false;

if(*(instr+n)>='a'&&*(instr+n)<='z')

{

if(*(instr+n+1)!='\0'&&*(instr+n+2)!='\0')

{

if(*(instr+n)==*(instr+n+1)&&*(instr+n)==*(instr+n+2))

{

if(*(instr+n)=='z')

*(outstr+pos)='a';

else

*(outstr+pos)=*(instr+n)+1;

pos++;

n+=2;

t=true;

change=1;

}

}

}

if(t==false)

{

*(outstr+pos)=*(instr+n);

pos++;

}

}

*(outstr+pos)='\0';

pos=0;

while(true)

{

*(instr+pos)=*(outstr+pos);

if(*(outstr+pos)=='\0')

break;

pos++;

}

if(change==0)

break;

}

pos=0;

while(true)

{

*(pOutStr+pos)=*(instr+pos);

if(*(instr+pos)=='\0')

break;

pos++;

}

return0;

}

intmain()

{

chara[100],b[100];

scanf("%s",a);

ChangeString(a,b);

printf("%s\n",b);

return0;

}

2楼

-05-19 17:35

#include

#include

intChangeString(char*pInStr,char*pOutStr)

{

strcpy(pOutStr,pInStr);

boolbChange=false;

intiCnt=-1;

do

{

bChange=false;

iCnt=0;

while(*(pOutStr+iCnt)!='\0')

{

++iCnt;

}

iCnt--;

for(inti=0;i

{

char*pCur=pOutStr+i;

if(*pCur!='\0'

&&*(pCur+1)!='\0'

&&*(pCur+2)!='\0'

&&*pCur==*(pCur+1)

&&*(pCur+1)==*(pCur+2)

&&*pCur<='z'

&&*pCur>='a')

{

if(*pCur!='z')

{

++*pCur;

}

else

{

*pCur='a';

}

intj;

for(j=3;*(pCur+j)!='\0';++j)

{

*(pCur+j-2)=*(pCur+j);

}

*(pCur+j-2)='\0';

bChange=true;

break;

}

}

}while(bChange);

return0;

}

intmain()

{

char*pInStr="aaaaaaaaacc";

charpOutStr[1024]="";

if(0==ChangeString(pInStr,pOutStr))

{

printf("In:%s\n",pInStr);

printf("Out:%s\n",pOutStr);

}

}

3楼

-05-19 16:32

按你说的题意是没法做到的,是不是文字描述不对?“替换为改小写字母在字母表中的下一个字母”,是替换为字母表中下一个字母的大写?

再看看别人怎么说的。

4楼

-05-19 15:06

代码如下:

#include

#include

intChangeString(char*pInStr,char*pOutStr)

{

strcpy(pOutStr,pInStr);

boolbChange=false;

intiCnt=-1;

do

{

bChange=false;

iCnt=0;

while(*(pOutStr+iCnt)!='\0')

{

++iCnt;

}

iCnt--;

for(inti=0;i

{

char*pCur=pOutStr+i;

if(*pCur!='\0'

&&*(pCur+1)!='\0'

&&*(pCur+2)!='\0'

&&*pCur==*(pCur+1)

&&*(pCur+1)==*(pCur+2)

&&*pCur<='z'

&&*pCur>='a')

{

if(*pCur!='z')

{

++*pCur;

}

else

{

*pCur='a';

}

intj;

for(j=3;*(pCur+j)!='\0';++j)

{

*(pCur+j-2)=*(pCur+j);

}

*(pCur+j-2)='\0';

bChange=true;

break;

}

}

}while(bChange);

return0;

}

voidmain()

{

char*pInStr="aaaaaaaaacc";

charpOutStr[1024]="";

if(0==ChangeString(pInStr,pOutStr))

{

printf("In:%s\n",pInStr);

printf("Out:%s\n",pOutStr);

}

}

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

大家都在看

推荐资讯

c语言中用后三个字母替换 C语言编程实现 将给定字符串中连续出现3次的小写字母替换为改小写字母在字母表中的下一个字母...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。