首页 > 试题广场 >

将parabuf[]中的字符串,如“123”,“-301”等

[问答题]
将parabuf[]中的字符串,如“123”,“-301”等转化成数字123,-301并输出,不能用atoi等函数。
def parabuf(s):
    s = list(s)
    res = 0
    sign = 1
    for i, ch in enumerate(s):
        if ch == '-':
            if i != 0:
                return 'error number!'
            sign = -1
        elif ord(ch) > ord('9')&nbs***bsp;ord(ch) < ord('0'):
            return 'error number!'
        else:
            res = res * 10 + (ord(ch) - ord('0'))
    return sign * res

发表于 2020-04-09 15:08:09 回复(0)
#include <iostream>
using namespace std;
int atoi(char *str)
{
int temp=0;
char *p=str;
if(*p=='+'||*p=='-') p++;
while(p!=0)
{
if(*p>'9'||*p<'0') break;
temp=temp*10+(*p)-'0';
}
if(*str=='-')  return -temp;
return temp;
}

发表于 2017-06-29 19:07:41 回复(0)
#include <iostream>
using namespace std;
int change( char* str )
{
 int base = 0;
 while ( *str )
 {
 base = base * 10 + (*str) - '0';
 str++;
 }
 return(base);
}

void main()
{
 char str[100];
 cin >> str;

 int value1;
 if ( *str == '-' )
 {
 value1 = -1 * change( str + 1 );
 }else  {
 value1 = change( str );
 }
 cout << value1 << endl;
}

发表于 2014-11-15 14:27:09 回复(0)