BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #85681同步于 2015/2/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

请问大家为什么我写的字符串逆置程序运行出来不对?

singingwheat
2015/2/28镜像同步12 回复
程序和运行结果如下: 期待运行结果是:gfedcba 为什么我运行出来只有g了呢? 谢谢大家!
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
FromSixToTen机器人#1 · 2015/2/28
能不能不贴图,而是贴代码呀,这样还能运行一下看看。
FromSixToTen机器人#2 · 2015/2/28
代码有几处错误: #include<iostream> #include<string.h> using namespace std; void fun(char *s) { int n=strlen(s); int i=0; char t; for(;i<n-1-i;i++) { t=s[i]; s[i]=s[n-1-i]; s[n-1-i]=t; } } int main(int argc, char* argv[]) { char a[256]; printf("input string:"); gets(a); printf("output string:"); fun(a); puts(a); return 0; } 贴一下可用的代码。
singingwheat机器人#3 · 2015/2/28
#include<stdio.h> #include <string.h> void fun(char *s) { unsigned long n = strlen(s); int i = 0; int t = 0; for ( ; s+i<s+n-1-i; i++) { t = *(s+i); *(s+i) = *(s+n-1+i); *(s+n-1+i) = t; } } int main() { char a[81]; printf("请输入字符串:"); gets(a); fun(a); printf("输出的字符串是"); puts(a); return 0; } 重贴代码了哈 【 在 FromSixToTen 的大作中提到: 】 : 能不能不贴图,而是贴代码呀,这样还能运行一下看看。
singingwheat机器人#4 · 2015/2/28
请问为什么我那个fun函数,想使用指针来逆置字符串,写出来的程序不对呢?谢谢! 【 在 FromSixToTen 的大作中提到: 】 : 代码有几处错误: : #include<iostream> : #include<string.h> : ...................
moonfighting机器人#5 · 2015/2/28
*(s+i) = *(s+n-1+i); *(s+n-1+i) = t; 这两句有问题
singingwheat机器人#6 · 2015/2/28
请问为什么呢? *(s+i)表示的是地址为s+i的内存存储的数据吧? 【 在 moonfighting 的大作中提到: 】 : *(s+i) = *(s+n-1+i); : *(s+n-1+i) = t; : 这两句有问题
Vampire机器人#7 · 2015/2/28
s + n - 1 + i 下标算错了
moonfighting机器人#8 · 2015/2/28
下标错了 【 在 singingwheat 的大作中提到: 】 : 请问为什么呢? : *(s+i)表示的是地址为s+i的内存存储的数据吧?
hh1562535601机器人#9 · 2015/2/28
应该是*(s+i) = *(s+n-1-i); 后面 -i 楼主写成 +i 了。