C语言中 字符串如何转为整型数值
背景:main(){charStr[]="19,2,30,67,5";intnum;num=a[2];printf("%d\n",a);//输出51printf("%s\...
背景:
main() {
char Str[] = "19,2,30,67,5";
int num;
num = a[2];
printf("%d\n", a );//输出51
printf("%s\n", a );//输出30
}
a[2]本来是30的(字符串),用%d输出则为51,怎么回事,应该怎么转换
若不将a[2]转为整型数值,就没办法用a[2]进行计算了,其他也一样
越简单越好
啊,忘了,要将char Str[] = "19,2,30,67,5";
改为char Str[] ={"19","2","30","67","5"}; 展开
main() {
char Str[] = "19,2,30,67,5";
int num;
num = a[2];
printf("%d\n", a );//输出51
printf("%s\n", a );//输出30
}
a[2]本来是30的(字符串),用%d输出则为51,怎么回事,应该怎么转换
若不将a[2]转为整型数值,就没办法用a[2]进行计算了,其他也一样
越简单越好
啊,忘了,要将char Str[] = "19,2,30,67,5";
改为char Str[] ={"19","2","30","67","5"}; 展开
展开全部
在C语言中将字符串转化成整型有两种方法。
1 用atoi函数。
atoi的功能就是将字符串转为整型并返回。其声明为
int atoi(char *str);
比如atoi("1234");会返回整型1234。
要调用atoi,需要引用头文件stdio.h
2 用sscanf。
sscanf与标准格式化输入函数scanf类似,不过源并非是标准输入,而是字符串。
用sscanf可以处理更复杂的字符串。
比如字符串char * str = "a=1, b=2";
定义int a,b;后
可以用
sscanf(str,"a=%d, b=%d",&a,&b);
来将a,b值提取,计算后,a=1, b=2。
要使用sscanf同样需要引用头文件stdio.h。
1 用atoi函数。
atoi的功能就是将字符串转为整型并返回。其声明为
int atoi(char *str);
比如atoi("1234");会返回整型1234。
要调用atoi,需要引用头文件stdio.h
2 用sscanf。
sscanf与标准格式化输入函数scanf类似,不过源并非是标准输入,而是字符串。
用sscanf可以处理更复杂的字符串。
比如字符串char * str = "a=1, b=2";
定义int a,b;后
可以用
sscanf(str,"a=%d, b=%d",&a,&b);
来将a,b值提取,计算后,a=1, b=2。
要使用sscanf同样需要引用头文件stdio.h。
展开全部
额、、编都不能编译 ,把字符串转化为整形有3种方法:
1.-‘0’ (适用1~9);
2.调用函数atoi()
3.调用函数sscanf();
1.-‘0’ (适用1~9);
2.调用函数atoi()
3.调用函数sscanf();
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/*
*解决方案 看一下吧!
*/
#include <stdio.h>
#include <stdlib.h> //atoi()函数头文件
int main()
{
char* a[] = {"19", "2", "30", "67", "5"}; //注意要定义为数组指针才能像你这样赋值
int num;
num = atoi(a[2]); //atoi(const char *)该函数实现字符型转化为整形
printf("%d\n", num); //输出数值30
printf("%s\n", a[2]); //输出字符30
return 0;
}
*解决方案 看一下吧!
*/
#include <stdio.h>
#include <stdlib.h> //atoi()函数头文件
int main()
{
char* a[] = {"19", "2", "30", "67", "5"}; //注意要定义为数组指针才能像你这样赋值
int num;
num = atoi(a[2]); //atoi(const char *)该函数实现字符型转化为整形
printf("%d\n", num); //输出数值30
printf("%s\n", a[2]); //输出字符30
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1 先改了能运行。
#include <stdio.h>
void main() {
char a[] = "19,2,30,67,5";
int num;
num = a[2];
printf("%d\n", a);//输出51
printf("%s\n", a);//输出30
}
2 VC++ 2005下运行结果是:
1244988
19,2,30,67,5
3 结果与你所说的不符,无法分析。
#include <stdio.h>
void main() {
char a[] = "19,2,30,67,5";
int num;
num = a[2];
printf("%d\n", a);//输出51
printf("%s\n", a);//输出30
}
2 VC++ 2005下运行结果是:
1244988
19,2,30,67,5
3 结果与你所说的不符,无法分析。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道你要说什么,给你个字符串转为整型数值的程序
#include<stdio.h>
int strtoint(char *str)
{
int num=0,i;
for(i=0;str[i]!='\0';i++) num=num*10+str[i]-'0';
return num;
}
void main()
{
int n=strtoint("30");
printf("%d",n);
}
#include<stdio.h>
int strtoint(char *str)
{
int num=0,i;
for(i=0;str[i]!='\0';i++) num=num*10+str[i]-'0';
return num;
}
void main()
{
int n=strtoint("30");
printf("%d",n);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询