指针练习之字符串拷贝
题目:利用指针编写C程序,实现如下功能:
接收从键盘输入的一个字符串,并将其所有字符依次拷贝到另一字符串中,要求在拷贝的过程中每两个字符后增加一个*,完成拷贝后输出新字符串,并在输出完成后输出回车换行符表示结束。
注意:如果该字符串已到末尾,则不再加*
样例输入1:ab2d3c
样例输出1:ab2d3c(末尾有回车换行)
样例输入2:ab2d3
样例输出2:ab2d3(末尾有回车换行)
样例输入3:abcde
样例输出3:ab**cde(末尾有回车换行)
代码:
#include <stdio.h>
#include <string.h>
int main()
{
char A[100];
char *a = A;//定义一个指针a指向A
char B[100];
char *b = B;//同上
int i = 0;
gets(A);//输入A的值
while(*a != ‘\0’)
{
b++ = a++;//按顺序从第一个元素开始赋值
i++;
if(a == ‘\0’)//赋值完毕后,遇到结束符就跳出去
break;
if(i == 2)//每赋值两次就加一个
{
b = '’;//注意这里的b等于上面的(b+2)
b++;//加完之后再让b的地址向前走一步,回到上面将a的第三个元素赋值过来,从这开始,每加两个字符,b的地址就要向前一位。
i = 0;
}
}
*b = '\0';//结束后,将b的最后一个字符串的后一位赋给结束符,结束这个字符串的输出
printf("%s\n", B);
return 0;
}