如何在不使用任何就绪函数(ex atoi();)的情况下将字符数组(字符串)更改为整数,例如: -
char a[5]='4534';
我想要数字4534,我怎么能得到它?
答案 0 :(得分: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