函数字符串倒置问题
#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 #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;
} #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);
} 傻眼貓咪 发表于 2022-1-24 15:14
好的谢谢! zzk5015377 发表于 2022-1-24 15:38
好的谢谢!
不客气{:5_109:} basketmn 发表于 2022-1-24 15:06
谢谢啦~ 傻眼貓咪 发表于 2022-1-24 15:14
不能使用常量字符串是什么意思呀,*p和p[]不是一样的吗 zzk5015377 发表于 2022-1-24 20:46
不能使用常量字符串是什么意思呀,*p和p[]不是一样的吗
是的,不一样,一个是常量字符串,一个是字符串数组{:5_109:}
页:
[1]