鬼魅王子 发表于 2019-10-27 17:22

C语言字符串数组问题

#include <stdio.h>
#include <string.h>
int main()
{
        char a;
        int i,j;
        printf("输入一串字符串:\n");
        gets(a);
        j=strlen(a);
        for(i=0;i<=j-1;i++)
        {
                if(a>=49 && a<=57)
                {
                        a--;
                }else if(a=48)
                {
                        a=57;
                }
        }
        puts(a);
        return 0;
}
题目:从键盘输入一个字符串,将该字符串中的’1’~’9’转换成比它小1的数字字符,’0’转换成’9’。
如abc1230098efg
变成 abc0129987efg
我这个数字变形解决了但是为什么 字符串全变成9了?

不灭咒痕 发表于 2019-10-27 17:37

}else if(a=48)   这一句,应该是==而不是=,建议判断的时候,常量写左边,比如48 == a,就不会出错了,因为常量不能被赋值

鬼魅王子 发表于 2019-10-27 17:37

不灭咒痕 发表于 2019-10-27 17:37
}else if(a=48)   这一句,应该是==而不是=,建议判断的时候,常量写左边,比如48 == a,就不会出错了,因 ...

哦,谢谢,啊,又犯了低级错误

小可爱~ 发表于 2019-10-27 18:17

else if(48=a)

这样不是更好么??? 直接报错了

鬼魅王子 发表于 2019-10-27 18:22

小可爱~ 发表于 2019-10-27 18:17
这样不是更好么??? 直接报错了

我的错误是 把==写成=

好剑者 发表于 2019-10-27 19:02

厉害了,楼主,赞一个!{:301_1003:}

Ly_轮回 发表于 2019-10-27 20:04

不灭咒痕 发表于 2019-10-27 17:37
}else if(a=48)   这一句,应该是==而不是=,建议判断的时候,常量写左边,比如48 == a,就不会出错了,因 ...

感谢大佬,学到了

小可爱~ 发表于 2019-10-27 21:48

鬼魅王子 发表于 2019-10-27 18:22
我的错误是 把==写成=

你没理解我的意思, 把常量放在 == 左边进行对比的话, 编译器在编辑的时候你就发现错误了

鬼魅王子 发表于 2019-10-27 23:14

小可爱~ 发表于 2019-10-27 21:48
你没理解我的意思, 把常量放在 == 左边进行对比的话, 编译器在编辑的时候你就发现错误了

哦,谢谢大佬,理解了
页: [1]
查看完整版本: C语言字符串数组问题