永发信息网

将输入的字符串逆置。存在问题,代码如下,求修改!

答案:3  悬赏:60  手机版
解决时间 2021-12-23 01:53
#include
#include
#include
#define N 81
void fun(char *s)
{
char *p = s;
while(*p != '\0')
p++;
p--;
while(*p != '\0')
{
*(s++) = *p;
p--;
}
*s = '\0';
}
main()
{
char a[N];
printf("Enter a string:");
gets(a);
printf("\nThe original string is:");
puts(a);
fun(a);
printf("\nThe string after modified:");
puts(a);
strcpy(a,"Hello world!");
fun(a);
}
最佳答案
void fun(char *s)
{
char *p = s;
while(*p != '\0')
p++;
p--;
while(*p != '\0')
{
*(s++) = *p;
p--;
}
*s = '\0';
}
这个函数出了问题,经过这个函数处理之后S指针的位置在字符串的结尾,之后你再要PUTS的时候就出现问题了,
void fun(char *s)
{
char *p = s;
char *q = s;
while(*p != '\0')
p++;
p--;

while(*p != '\0')
{
*(s++) = *p;
p--;
}
*s = '\0';
}
s=q;

}
全部回答
#include #include #include #include #define N 81 void fun(char *s) { char *p = s; char *q = s; while(*p != '\0') { p++; } p--; //p指针移动到s字符串的尾部 while(q < p) //q指向s字符串的头部,p指向s字符串的尾部,每次交换q和p所指地址的值,然后q,p同时向中间移动 { char temp = *q; *q = *p;; *p = temp; q++; p--; } } int main() { char a[N]; printf("Enter a string: "); gets(a); printf("\nThe original string is: "); puts(a); fun(a); printf("\nThe string after modified: "); puts(a); strcpy(a,"Hello world!"); puts(a); fun(a); puts(a); system("pause"); return 0; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
执牛耳最初是指什么?
郑爽和刘诗诗,都是学舞蹈出身的独生女,差距
太天真,新规则就能置哈登于死地吗
一部外国科幻电影,用女主角卵子克隆一生物,后
武汉市黄陂区蔡店乡公安局的电话是多少?拜托
关于常州地区讲土特产和民风民俗的俗语有哪些
幸福树的叶子被晒蔫儿了怎么办
沈阳市第一人民医院怎么样
濉溪县安全生产监督管理局地址有知道的么?有
齐河华店有新能源汽车制造厂吗
大中华深圳喜来登酒店 和深航酒店,这两个地
梦见壁虎咬自己的脚踝是什么预兆?
怎么让鼠标变样子
化妆品盒子上没有写执行标准合格吗?
上海好 还是深圳好?
推荐资讯
科目一和科目二都过了,现在该考科目三,自己
31号别人给我发的微信红包,我已经点领取了,
在我国各民族中,________族人口最多,约占全
苹果程序没声音,耳机有,来电铃声却很正常,
大冶经济开发区城市管理分局在什么地方啊,我
真情流露是什么意思
______kindoffooddoyoulike?A.HowB.WhatC.Who
怎么找回刚刚浏览过的网址?
口红太深怎么处理
买电摩要注意什么
惠州市救助管理站地址在哪,我要去那里办事,
51~100中有多少质数?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?