题目描述:
利用指针编写C程序,实现如下功能: 接收从键盘输入的一个字符串,并将其所有字符依次拷贝到另一字符串中,要求在拷贝的过程中每两个字符后增加一个*,完成拷贝后输出新字符串,并在输出完成后输出回车换行符表示结束。 注意:如果该字符串已到末尾,则不再加* 样例输入1:ab2d3c 样例输出1:ab*2d*3c(末尾有回车换行) 样例输入2:ab2d3 样例输出2:ab*2d*3(末尾有回车换行) 样例输入3:ab*cde 样例输出3:ab**c*de(末尾有回车换行)
参考代码:
#include<stdio.h>
void copy(char *s1,char *s2)
{
if(s1==NULL||s2==NULL)
{
printf("error\n");
return;
}
int i=0,j=0;
while(*(s1+i)!='\0')
{
*(s2+j++)=*(s1+i++);
if(i%2==0&&*(s1+i)!='\0') *(s2+j++)='*';
}
return;
}
int main()
{
char s1[10001],s2[10001];
gets(s1);
copy(s1,s2);
puts(s2);
return 0;
}
讲解:
每隔两个字符插入一个星号。值得注意的是,若字符串已到末尾,则不再加星号。
求实求真,大气大为。