输入字符数组a中一串字符,按照逆序复制到字符数组b中。 用指针做,应该怎么做呢?C语言编程。
答案:4 信息版本:手机版
解决时间 2019-10-05 14:03
已解决
2019-10-05 10:17
输入字符数组a中一串字符,按照逆序复制到字符数组b中。 用指针做,应该怎么做呢?C语言编程。
最佳答案
2019-10-05 11:04
void main(void)
{
char src[100]={0};
char dst[100]={0};
char len=0;
char *p=src;
char i,j=0;
printf("please input src string:");
gets(src);
len=strlen(src);
for(i=len-1;i>=0;i--)
{
dst[j]=p[i];
j++;
}
printf("dst:%s\n",dst);
}
out put:
please input src string:abcde
dst:edcba
Press any key to continue
全部回答
1楼
2019-10-05 14:35
#include
int main()
{
char a[123], *p = a;
gets(a);
while(*p) ++p;
while(p > a) putchar(*--p);
}
while(*p) ++p; 这里是 只要*p 的值不为0,让p自加。指向a的末尾。
为避免错误最好写成 while(p&&*p) 例如输入"abc"那么 从a开始 就p+1 到\0的时候是p+4;
然后while(p > a) 这里比较p和a的地址 因为a的地址给到了p所以之前地址相同 但是前面p有自加。
--p 就从p+4-1开始 从后往前输出
* 在定义的时候是指针 在后面都是 取值的作用。兄弟 不采纳 就过分了。。
2楼
2019-10-05 13:03
#include
//将sour的len长度的字符逆序复制到dest, 必须保证dest的长度不小于len
void F(char *sour, int len, char *dest)
{
int i = 0;
for ( ; i dest[len-1-i] = sour[i];
}
int main()
{
char sour[1000];
char dest[1000];
scanf("%s", sour);
F(sour, strlen(sour), dest);
dest[strlen(sour)] = '\0';
printf("%s\n", dest);
return 0;
}
3楼
2019-10-05 12:03
#include
#include
#define BUFFER 100
int main()
{
char a[BUFFER]={0};
char b[BUFFER]={0};
char *ptr;
int i;
ptr = b;
printf("Please input :\n");
gets(a);
i = strlen(a);
while(i>0)
{
*ptr++ = *(a+i--);
}
*ptr = '\0';
return 0;
}
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
大家都在看
推荐资讯