将字符*转换为int
invalid conversion of a char* to int
我被困在这一部分上,我需要在以下代码中修复编译错误的帮助。我是使用G 编译器。
错误消息如下:"从con char*到âint[-fpermissive]"
bool isRegistered(const Prefix* pre,int area,const char* publisher, int * pos)
{
int n,i=0,num,flag=0,low,high,pub;
n=*(pos);
while(pre->area[n]==area)
{
num=publisher[i]-48;
switch(pre->pubLen[n])
{
case 1:
num=publisher[i]-48;
在每种情况下,问题都在下面。
low=((*pre).pubLow[n])-48;
high=(pre->pubHigh[n])-48;
if((num>low)&&(num<high))
{
pub=num;
}
break;
case 2:
num=(publisher[i]-48)*10+(publisher[i+1]-48);
low=(pre->pubLow[n])-48;
high=(pre->pubHigh[n])-48;
if((num>low)&&(num<high))
{
pub=num;
}
break;
前缀的定义
struct Prefix {
int no; // number of entries
int area[MAX]; // area elements
char pubLow[MAX][8]; // low end of publisher range
char pubHigh[MAX][8]; // high end of publisher range
int pubLen[MAX]; // no of chars in publisher string
};
案例3等等....
给出pubLow
也
**low=((*pre).pubLow[n])-48;
high=(pre->pubLow[n])-48; **
low是一个整数,在低之前删除 **
和 48;
之后使它变成
low=((*pre).pubLow[n])-48;
high=(pre->pubLow[n])-48;
这是您的代码
bool isRegistered(const Prefix* pre,int area, char* publisher, int * pos)
{
int n,i=0,num,flag=0,low,high,pub;
n=*(pos);
while(pre->area[n]==area)
{
num=publisher[i]-48;
switch(pre->pubLen[n])
{
case 1:
num=publisher[i]-48;
low=atoi(((*pre).pubLow[n])-48);
high=atoi((pre->pubHigh[n])-48);
if((num>low)&&(num<high))
{
pub=num;
}
break;
case 2:
num=(((publisher[i]-48)*10)+(publisher[i+1]-48));
low=atoi((pre->pubLow[n])-48);
high=atoi((pre->pubHigh[n])-48);
if((num>low)&&(num<high))
{
pub=num;
}
break;
相关文章:
- 是否可以从int转换为enum类类型
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- 是什么导致了这种使用三进制而不是短整型的有符号int到无符号int转换
- 将字符串中的 int 转换为字母;
- 主.cpp:18:20:错误:从"int*"转换为"int"会失去精度 [-fa
- 将非常大的 int 转换为双倍,在某些计算机上会损失精度
- 如何将矢量<int>转换为字符数组?
- C++ 无法从 const int* 转换为 const_iterator
- 我不断收到错误 C2440'=':无法从"int *(__cdecl *)(int *,int *,int,int)"转换为"int *
- 如何将 int[4] 转换为 std::array<int,4>?
- 如何将data[i].int转换为vaible
- 将 int 转换为字符串,然后连接另一个变量以创建完整扩展名,然后将其转换为 const_char*
- 将私有矩阵形式 int 转换为双 C++
- 无法将参数 1 从 'int' 转换为 'int &'
- 将 int 转换为字符串后始终得到 0
- isspace 函数的性能警告,从 int 转换为布尔值
- 将大 int 转换为浮点数,而不舍入 c++
- 错误:无法将'uint8* {aka unsigned int*}'转换为"常量emxArray_uint8_T*"?
- 将未签名的INT转换为BCD
- 在 C++ 中将 int 转换为双精度