题目描述
小平在读一篇英语文章时,发现有些句子里含有 don't ,壮神告诉他这是英文do not的缩写,但小平不喜欢这种缩写,请帮助小平把句子中的该种缩写形式替换成非缩写形式。
以下给出部分代码实现,请提交缺少的代码。
#include <stdio.h>
#include <string.h>
#define MAXLEN 256
int main()
{
char s1[MAXLEN],s2[MAXLEN]="";
char *p1 = s1,*p2 = s2;
void replace(char *src,char *dst);
scanf("%[^\n]",s1);
replace(p1,p2);
printf("%s\n",s2);
return 0;
}
输入
含有或不含有缩写don't的句子。
输出
将所有缩写don't全部展开后的句子。
样例输入
Don't roar at me.They don't like reading.I don't like tea and coffe.
样例输出
Do not roar at me.They do not like reading.I do not like tea and coffe.
参考代码
#include <stdio.h>
#include <string.h>
#define MAXLEN 256
void replace(char *p1,char *p2)
{
int i,j;
for (i=j=0;i<=strlen(p1);i++,j++)
{
if((p1[i]=='D'||p1[i]=='d')&&p1[i+1]=='o'&&p1[i+2]=='n'&&p1[i+3]=='''&&p1[i+4]=='t')
{
p2[j]=p1[i];
p2[j+1]=p1[i+1];
p2[j+2]=' ';
p2[j+3]='n';
p2[j+4]='o';
p2[j+5]='t';
i+=4;
j+=5;
}
p2[j]=p1[i];
}
}
int main()
{
char s1[MAXLEN],s2[MAXLEN]="";
char *p1 = s1,*p2 = s2;
void replace(char *src,char *dst);
scanf("%[^n]",s1);
replace(p1,p2);
printf("%sn",s2);
return 0;
}
解析
暂无