string转换成int类型 和int转string

本文介绍了一个在缺少atoi函数的情况下的替代方案。提供了一种手动实现整数到字符串转换的方法,适用于需要从配置文件中读取并转换整数的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

strlib.h里面有个atoi

配置文件里面有 一个IP、端口号  sqlaudit:oracleip any,oracleports 1521,mssqlip any,mssqlports 1433 139 445

那么可以,读取出来,然后把这个1521通过atoi转换成整形。

 

貌似strlib.h库里面没有,itoa,所以只好,自己动手。

char *myIntToStr(int num,int radix)
{
 //char *tmp=num%10+30; num/10 num/100
 /* 索引表 */
 char index[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 unsigned unum; /* 中间变量 */
 char mem[25];
 memset(mem,0,26);
 char *str=mem;
 int i=0,j,k;
 /* 确定unum的值 */
 if (radix == 10 && num < 0) /* 十进制负数 */
 {
  unum = (unsigned) -num;
  str[i++] = '-';
 }
 else unum=(unsigned)num; /* 其他情况 */
 /* 逆序 */
 do{
  str[i++]=index[unum%(unsigned)radix];
  unum/=radix;
 }while(unum);
 str[i]='/0';
 /* 转换 */
 if(str[0]=='-') k=1; /* 十进制负数 */
 else k=0;

 /* 将原来的“/2”改为“/2.0”,保证当num在16~255之间,radix等于16时,也能得到正确结果 */
 for(j=k;j<(i-1)/2.0+k;j++)
 {
  num=str[j];
  str[j]=str[i-j-1+k];
  str[i-j-1+k]=num;
 }
 return str;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值