另外一只小菜鸟 发表于 2019-4-11 09:17:29

课后作业,实现atio函数功能

#include<stdio.h>
int main()
{
char a;
printf("请输入带转换的数据:");
int ch;
int i=0;
while((ch=getchar())!='\n')
{
if(ch>=0&&ch<=9)
{
a=ch;
}
else
{
if(a!=NULL)
break;
}
}
a='\n';
printf("结果是:%s",a)
}
问题出在哪?

82457097 发表于 2019-4-11 10:03:26

你要将字符数字转换为整形数字 那你应该char ch 并且判断ch是否在字符0-9之间

另外一只小菜鸟 发表于 2019-4-11 10:39:07

82457097 发表于 2019-4-11 10:03
你要将字符数字转换为整形数字 那你应该char ch 并且判断ch是否在字符0-9之间

不是getchar()返回的是整形,所以必须要用int声明ch吗。

另外一只小菜鸟 发表于 2019-4-11 10:44:48

82457097 发表于 2019-4-11 10:03
你要将字符数字转换为整形数字 那你应该char ch 并且判断ch是否在字符0-9之间

而且我改成了
char ch;
if(ch>='0&&ch<='9'')
还是不行

82457097 发表于 2019-4-11 11:21:32

另外一只小菜鸟 发表于 2019-4-11 10:44
而且我改成了
char ch;
if(ch>='0&&ch

我的意思是你不是要实现atio函数吗 那个是将字符串数字转换为整形字符串 你用一个char数组接收 然后输出字符串 结果跟atio函数正好相反

TOP_LK 发表于 2019-4-11 12:40:03

atoi?

Croper 发表于 2019-4-11 16:46:06

实现函数的功能。。编个函数就行了吧,完全不需要getchar吧#include <stdio.h>

int atoi2(char* sz){
        int ret=0;
        int flg=1;
        if (*sz=='-'){
                flg=-1;
                ++sz;
        }
       
        while (*sz>='0' && *sz<='9'){
                ret*=10;
                ret+=*sz-'0';
                sz++;
        }
       
        ret*=flg;
        return ret;
}
页: [1]
查看完整版本: 课后作业,实现atio函数功能