鱼C论坛

 找回密码
 立即注册
查看: 1471|回复: 4

[已解决]字符串反转这个程序怎么不对

[复制链接]
发表于 2020-10-12 17:10:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
void reverse(char *c);
int main()
{
  //初始化
  char c[]="hello world";
  reverse(c);
}
//反转函数
void reverse(char c[])
{
  char count;
  for(int i=0;i<11;i++)
  {
    count=c[i];
    c[i]=c[10-i];
    c[i]=count;
  }
  //输出
    printf("%s",c);
}
最佳答案
2020-10-12 17:38:12
  1. #include<stdio.h>
  2. #include<string.h>
  3. void reverse(char *c);
  4. int main()
  5. {
  6.         //初始化
  7.         char c[]="hello world";
  8.         reverse(c);
  9.         return 0;
  10. }
  11. //反转函数
  12. void reverse(char c[])
  13. {
  14.         long len = strlen(c);
  15.         char count;
  16.         for(int i=0;i<len/2;i++)
  17.         {
  18.                 count=c[i];
  19.                 c[i]=c[len - i - 1];
  20.                 c[len - i - 1]=count;
  21.         }
  22.         //输出
  23.     printf("%s",c);
  24. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-10-12 17:12:46 From FishC Mobile | 显示全部楼层
怎么可以出现i<11这样的字眼,实在是太不专业了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-12 17:38:12 | 显示全部楼层    本楼为最佳答案   
  1. #include<stdio.h>
  2. #include<string.h>
  3. void reverse(char *c);
  4. int main()
  5. {
  6.         //初始化
  7.         char c[]="hello world";
  8.         reverse(c);
  9.         return 0;
  10. }
  11. //反转函数
  12. void reverse(char c[])
  13. {
  14.         long len = strlen(c);
  15.         char count;
  16.         for(int i=0;i<len/2;i++)
  17.         {
  18.                 count=c[i];
  19.                 c[i]=c[len - i - 1];
  20.                 c[len - i - 1]=count;
  21.         }
  22.         //输出
  23.     printf("%s",c);
  24. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-12 18:52:21 | 显示全部楼层

大家本来也都不是专业的啊……
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-10-12 19:22:18 | 显示全部楼层
当你运行第一次的时候,是C0和C10交换,当运行到一半时候,已经实现了反转交换,继续运行下去会让原来已经交换过的元素再次发生交换,所以未实现反转。例int A4=“abcd”,第一次 dbca 第二次 dcba,此时已经实现了反转,继续运行的话,第三次dbca,第四次abcd
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-5 11:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表