char* 如何转int?
如char* s = "123";
int i;
如何把123存入变量 i ? i = (int)s 本帖最后由 zltzlt 于 2020-8-6 16:01 编辑
https://zhidao.baidu.com/question/1818001809269281148.html
例:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *str = "123";
int num = atoi(str);
printf("%d", num);
return 0;
} #include<stdio.h>
int main(){
char *s = "123";
int i = 0;
for(int j = 0; j < 3; ++j){
i = *(s+j)-'0' +i*10;
}
printf("%d",i);
return 0;
} 本帖最后由 Cool_Breeze 于 2020-8-6 16:15 编辑
#include <stdio.h>
#include <stdlib.h>
//int __cdecl atoi(const char *_Str);
int main(void)
{
char *s = "123";
int* j = (void*)s;
int i = atoi(s);
printf("%d\n",s);
printf("%d\n",j);
printf("%s\n",s);
printf("%d\n",atoi(s));
printf("%d\n",i);
printf("%d\n",atoi((char*)j));
return 0;
}
4210688
4210688
123
123
123
123
--------------------------------
Process exited after 0.02652 seconds with return value 0
请按任意键继续. . .
xiaosi4081 发表于 2020-8-6 15:56
谢谢您 这个想到过 不过出来的数字比较长 跟char值不一样哦~ zltzlt 发表于 2020-8-6 15:56
https://zhidao.baidu.com/question/1818001809269281148.html
例:
谢谢您{:10_297:} baige 发表于 2020-8-6 15:59
谢谢您,这个char值如果是整数的话是完全没有问题的 如遇到小数就会出来一个比较大的值了 跟原来的char zltzlt 发表于 2020-8-6 15:56
https://zhidao.baidu.com/question/1818001809269281148.html
例:
请问如果遇到的是浮点型 有什么办法能把小数右边的数字也保留下来吗? 小喧女 发表于 2020-8-6 16:30
请问如果遇到的是浮点型 有什么办法能把小数右边的数字也保留下来吗?
这要自己另外编写函数了
页:
[1]