-1

例子:

// variable fixed
Char specialstring[PATH_MAX];
int integernumber;
int xx = 1 ; 
int yy = 1 ; 
strncopy( specialstring, "1369", ... bla); 


// here we go !! help there below please
integernumber=atoi(specialstring);
mvprintw( yy , xx , "%d" , integernumber );

请帮助我将特殊字符串转换为整数?

谢谢你

4

2 回答 2

2

在您的代码中,您有两个错误:

1) strncopy不是您想要的功能strncpy。它的手册页: char *strncpy(char *restrict s1, const char *restrict s2, size_t n); s1是目标字符串和s2源字符串,n是您要从源复制的字符数。

如此正确:

strncopy( specialstring, "1369", ... bla); 
     ^                            ^ should be `n` num of chars you wants to 
    strncpy                         copy in `specialstring`

进入

 strncpy( specialstring, "1369", 4); 

2)在声明中specialstringChar是错误的,你应该写小c

Char specialstring[PATH_MAX];
^ small letter

char  specialstring[PATH_MAX];

3) atoi() 是正确的函数,你必须将字符串转换为 int,如果你想在没有转换的情况下进行转换,atoi可以使用sscanf()如下函数:

sscanf(specialstring,"%d", &integernumber);

查看此:工作代码

于 2013-03-30T11:10:19.663 回答
-1

您可以使用它来将字符串转换为 int 而不使用 atoi

int Convert(char * str)
{
    int result =0;
int len=strlen(str);
for(int i=0,j=len-1;i<len;i++,j--)
    {
    result += ((int)str[i] - 48)*pow(10,j);
    }

   return result;
}
于 2013-03-30T11:08:59.173 回答