zzk5015377 发表于 2022-1-24 14:42:44

函数字符串倒置问题

#include<string.h>
void reverse(char *x)
{
char z;
int j,i,a;
a=strlen(x);
j=a;
for(i=0;i<a/2;i++)
{
   z=x;
   x=x;
   x=x;
   j--;
}
}
main()
{
char *p="china";
reverse(p);
puts(p);
}
错在哪了呢家人们T T

basketmn 发表于 2022-1-24 15:06:04

#include<string.h>
#include<stdio.h>
void reverse(char *x)
{
char z;
int j,i,a;
a=strlen(x);
j=a-1;
for(i=0;i<=a/2;i++)
{
   z=x;
   x=x;
   x=z;
   j--;
}

}
int main()
{
char p[]="china";
reverse(p);
puts(p);
return 0;
}

傻眼貓咪 发表于 2022-1-24 15:14:01

#include <stdio.h> // <---------- 注意这里 ----------
#include <string.h>

void reverse(char *x)
{
    char z;
    int j, i, a;
    a = strlen(x);
    j = a - 1; // <---------- 这里 j = a - 1,因为字符串位置从 0 开始至 a - 1
    for(i = 0; i < a/2; i++)
    {
      z = x;
      x = x;
      x = z; // <---------- 这里你写错了
      j--;
    }
}

int main()
{
    char p[] = "FishC"; // <---------- 这里不能用常量字符串,常量字符串不能更改
    reverse(p);
    puts(p);
}

zzk5015377 发表于 2022-1-24 15:38:02

傻眼貓咪 发表于 2022-1-24 15:14


好的谢谢!

傻眼貓咪 发表于 2022-1-24 15:45:20

zzk5015377 发表于 2022-1-24 15:38
好的谢谢!

不客气{:5_109:}

zzk5015377 发表于 2022-1-24 20:39:33

basketmn 发表于 2022-1-24 15:06


谢谢啦~

zzk5015377 发表于 2022-1-24 20:46:05

傻眼貓咪 发表于 2022-1-24 15:14


不能使用常量字符串是什么意思呀,*p和p[]不是一样的吗

傻眼貓咪 发表于 2022-1-24 21:12:44

zzk5015377 发表于 2022-1-24 20:46
不能使用常量字符串是什么意思呀,*p和p[]不是一样的吗

是的,不一样,一个是常量字符串,一个是字符串数组{:5_109:}
页: [1]
查看完整版本: 函数字符串倒置问题