C语言中关于字符串转整型?

char buf[] = {"c1"};怎么转成int型?

字符串转成整型可以使用atoi函数。

函数原型:int atoi(const char *nptr);

功能:把字符串转换成整型数。

参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零。

参考代码:

#include <stdlib.h>
#include <stdio.h> 
int main()
{
    int n;
    char *str = "12345";
    n = atoi(str);
    printf("%d\n",n);
    return 0;
}
/*
运行结果:
12345
*/
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-10-27
字符型和整型在内存中都是以二进制形式存放的,所以二者可以通用,进行混合运算,比如'A'+1;当以%d的格式输出时为66;以%c的格式输出时为字符'B';

所以,字符型和整型是没有必要转化(主要要掌握字符型ASCII代码的范围即可,即0到256)对于运算过程没有什么区别,如果要进行字符型转整型,那也指的是输出格式的不同;但字符串转整型,这句话我就有点不明白了,即使要转,也是一个字符一个字符的进行转化。

比如:ch[]={"A"}; 字符ch[0]='A';ch[1]='\0';

ch[]={"ABC"}; 字符ch[0]='A';ch[1]='B';ch[2]='C';ch[4]='\0';

主要看你是以什么格式输出。

如果对你有所帮助,请记得采纳最佳答案,谢谢!
第2个回答  2010-10-26
不可以 除非存数字的字符串
第3个回答  2010-10-26
用函数可以转换,但是里面必须是一个数字,itoa函数,自己查一下。
第4个回答  推荐于2018-02-27
char *buf=(char *)malloc(2*sizeof(char));
*buf[0]='c1';
*buf[1]='\0';
//至此,buf[]和你声明的字符串一样的内容了
//增语句如下
free(buf);
buf=(int *)malloc(2*sizeof(int));
//至此,buf[]是整型数组,但为空

//想直接得到ASCII码的话,就写:
int a=buf[0];
//同样,如下也对
printf("%d",buf[0]);本回答被提问者和网友采纳
相似回答