如何将字符转换为整数

时间:2015-10-31 16:23:36

标签: c++ c

如何在不使用任何就绪函数(ex atoi();)的情况下将字符数组(字符串)更改为整数,例如: -

 char a[5]='4534';

我想要数字4534,我怎么能得到它?

4 个答案:

答案 0 :(得分:3)

不使用任何现有库,您必须:

  1. 将字符转换为数字。
  2. 合并数字以形成数字。
  3. 将字符转换为数字:

        <?php if ($product_id == 135) { ?>
        <?php require( PAVO_THEME_DIR."/template/product/product_detail_product1.tpl" );  ?>
    <?php } else { ?>
        <?php require( PAVO_THEME_DIR."/template/product/product_detail_default.tpl" );  ?>
    <?php } ?>    
    

    形成一个数字:

    digit = character - '0';
    

    您的功能必须检查“+”和“ - ”以及其他非数字字符。

答案 1 :(得分:1)

首先是这句话

SmsManager sms = SmsManager.getDefault();
    sms.sendTextMessage(destPhoneNumber, srcPhoneNo, message, sentPI,
            deliveredPI);

不会编译。我想你的意思是

 char a[5]='4534';

将此字符串转换为数字就足够了。

例如

 char a[5]="4534";
           ^^   ^^

或者你可以跳过前导空格。

例如

int number = 0;

for ( const char *p = a; *p >= '0' && *p <= '9'; ++p )
{
    number = 10 * number + *p - '0';
}

如果字符串可能包含“+”或“ - ”符号,那么您可以先检查第一个字符是否为符号。

答案 2 :(得分:0)

你可以这样

它正在运作

#include <stdio.h>
#include <string.h>
#include <math.h>

int main()
{

  char a[5] = "4534";

  int converted = 0;

  int arraysize = strlen(a);

  int i = 0;
  for (i = 0; i < arraysize ; i++)
  {
    converted = converted *10 + a[i] - '0';
  }

  printf("converted= %d", converted);   

  return 0;
}

答案 3 :(得分:-2)

我更喜欢使用std::atoi()函数将字符串转换为数字数据类型。在您的示例中,您有一个非零终止数组 "\0",因此该函数不适用于此代码。

考虑使用终止"strings",,如:

char *a = "4534";

int mynumber = std::atoi( a );   // mynumber = 4534