永发信息网

用c判断字符串正反读是否一致,为什么我的输出一直是0?

答案:4  悬赏:40  手机版
解决时间 2021-03-04 09:05
#include
#include
int campare(char a[5],char b[5]);
int main()
{
char a[5],b[5];
int i;
printf("请输入数组a的内容:\n");
scanf("%s",&a);
for(i=0;i<4;i++)
{
b[4-i-1]=a[i];
}
campare(a,b);
return 0;
}
int campare(char a[5],char b[5])
{
int c;
if(strcmp(a,b)!=0)
{
c=0;
}
else
{
c=1;
}
printf("%d",c);
return c;
}
最佳答案
这代码写的,那叫一个臭。
至少应作如下改动:
1、输入错了,应将 sacnf("%s",&a) 改为 scanf("%s",a)
2、在调用 campare 前,由于b数组中没有0值元素,即字符串结束符,所以b构不成字符串,调用strcmp将出现不可预见结果。应在调用campare前加一句:b[4]=0;
3、函数campare脱裤子放了个屁。
看我的:
#include
#include
void main() {
char a[5],b[5]={0};
int i;
printf("请输入数组a的内容:\n");
scanf("%s",a);
for(i=0;i<4;i++) b[3-i]=a[i];
printf("%d",!strcmp(a,b));
}
全部回答
正读:scanf("%s",a+1); 这样就从a[1]开始 倒读:for(int i=n-1;i>0;i--) //n是你数组的长度或者比数组长度小的常 { //量,i>0也就是到a[1]结束 scanf("%c",a+i); //因为倒过来,所以一个一个元素往里放 } a[n]='/0'; //别忘了数组最后一个元素是0 理解scanf()的运作方式:每次输入都从缓冲区读取一定的内容. 比如如果是%c,那么从缓冲区读取1个字节.如果你输入了"abcd"那么先把'a'放进去,然后第二次循环把'b'放进去以此类推.
return 0 改成 return compare(a, b)
#include #include int campare(char a[5],char b[5]); int main() { char a[5],b[5]; int i; printf("请输入数组a的内容:\n"); scanf("%s",a); for(i=0;i<4;i++) { b[4-i-1]=a[i]; //这里改了 } campare(a,b); return 0; } int campare(char a[5],char b[5]) { int c; if(strcmp(a,b)!=0) { c=0; } else { c=1; } printf("%d",c); return c; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
【作文阅读】阅读悦读作文以阅读悦读为题目的
我不会电脑打字怎么办,不好找工作
宜青桥购物中心我想知道这个在什么地方
微信每天白天正常接收 晚上接收不了信息而且
文艺活动有哪些
华房装饰在什么地方啊,我要过去处理事情
堇是什么字,什么意思
成长作文开头和结尾略写
西安北郊有什么卖茶叶的好地方?要大众化的,
她社区让填家庭地址可信吗
无极剑圣的皮肤哪个最好看最炫,求买过的人推
焕颜美容在哪里啊,我有事要去这个地方
宛城区南阳枣林社区卫生服务中心这个地址怎么
猜36种动物谜语龙衔宝盖承朝日,凤吐流芳带晚
侠盗飞车圣安地列斯,GTASA联机延迟高用什么
推荐资讯
滦南金城华苑三期在哪
如图,在矩形ABCD中,O是对角线的交点,AE⊥BD于
鸿喜族足道SPA白纸坊NO.8在什么地方啊,我要
截止2016年找到的最大的质数是多少
谁有《一只狗和他的城市》的读书笔记?
梦幻西游进的时候出现了错误提示073e71e5指令
华龙家俱城地址在什么地方,想过去办事
真心相爱的人分手后可以做朋友吗
电水壶烧水多少度呢
广西的有名小吃有哪些?
以亡者的名义助印经书的功德利益?
从昆明到福建泉州做火车要几个小时从昆明做火
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?