C语言atoi函数问题

我想用atoi函数将某个字符串中的数字转换为int型,然后算出结果,但是运行后说atoi传入的参数类型不匹配,我字符串数组中每个元素都是char类型的,难道类型不匹配?代码如下所示:

atoi 函数的传入是char * 类型的
int atoi(const char *nptr);追问

char str1[] = "5";
char str2[] = "6";

printf("%d", atoi(str1) + atoi(str2));
那为什么这样就正确呢,我遍历的每一个数据不都是单个char吗?我是初学者,麻烦详细解答一下,谢谢

追答

下面的str1 和str2 可以看作一个数组的首地址,说白了就是个指向一个字符串数组首地址的指针
atoi要求传入的是一个char 型指针
所以这个是正确的

char 跟char*是有区别的、

在你的题目中,可以将
a+ = atoi(res[i]);
改为
a+ = atoi(res + i);

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-07
肯定不匹配 看看atoi函数的原型吧,传地址进去就可以了
相似回答