编程atoi
❶ 我用KEIL编c语言的程序,用到了一个atoi函数,但在LCD上显示不出来,如果不用atoi,可以显示字符串里的数
因为不清楚你的具体需求,不好回答。
我首先假设内存足够大(至少1K),不是特别差的51、31系列单片机。
需求是把a142这个16进制数?转换成10进制数输出?
前面
char str[4]={“a142"};是完全错误的
应当是 char str[]="a142"; 或者 char str[5]="a142";
后面
最简单的就是
sscanf(str, "%x", &mmsi); /* 取出值 */
char buf[10]; /*看具体长度*/
sprintf(buf, "%d", mmsi); /* buf 里面变成了 41282,也可能是负数,这个看int范围 */
lcd_wdat(buf);
❷ 如何区分atoi()的非法输入返回值0,与输入的0
经实践,cout<<atoi("0abc");与cout<<atoi("abc");的输出结果都是0。
而且,因为atoi返回值可能是int范围中的任何一个数,所有返回值均可能在str中出现,所以仅仅依靠返回值int无法完全确定是否有数字字符存在。
如果你的char* str里存在‘0’,我觉得还是自己写一个函数吧,通过参数NumExit确定有没有数字。
int f(char* str,bool& NumExist)
{
NumExit=false;
int Num=0;
for(int i=0;i!='\0';i++)
{
if(str[i]是可以忽略的字符,如空格)
continue;
if(str[i]是数字、正负号等)
{
NumExist=true;
在Num的基础上记录数字;
}
else
return Num;
}
}
❸ c语言中实现输入一个数字字符,然后转换成整数数字输出.怎么做
字符串转整数可以有两种方法:
1.使用c语言自带的库函数:atoi。
函数原型:int atoi(const char *nptr);
功能:把字符串转成整型数。
例如:
#include<stdlib.h>
#include<stdio.h>
intmain(void)
{
intn;
char*str="12345";
n=atoi(str);
printf("int=%d ",n);
return0;
}
/*
输出:
int=12345
*/
2.可以自己编写一个转换函数:
#include<stdio.h>
#include<stdlib.h>
intatoi(char*s)
{
intt=0;
while(*s){
t=t*10+*s-'0';
s++;
}
return(t);
}
intmain()
{
chara[]="12345";
intn=atoi(a);
printf("n=%d",n);
return0;
}
/*
输出:
n=12345
*/
❹ 编程实现 atoi(char * nptr)
int atoi(char *nptr)
{
int sum=0;
int tens=1;
while(*nptr!='\0') {
sum+=(int)(*nptr-'0')*tens;
tens=tens*10;
nptr++;
}
return sum;
}
没有调试,大概意思如此。
❺ 一个c++编程,用到了atoi函数,错误显示无法转变类型。
String类是一个宏定义,相当于basic_string<char, char_traits<char>, allocator<char> >,而atoi函数的形参是指针常量,也可以说是一个数组的数组名,形参类型都不同,当然不行了
❻ 分段函数c语言编程
实验报告
1、有一分段函数:
设计一程序完成, 主控函数main()输入X的值并输出Y值.函数VAL计算Y的值。
1.需求规格说明
本题要求掌握C语言的数据类型,程序结构,基本输出输入,函数应用知识,问题的要求用到两个函数,要求利用主控函数main()输入X的值并输出Y值.并用函数VAL计算Y的值。
2.设计
2.1 设计思想
用两个储存空间分别存放主函数和被调用函数,在主函数中控制输入输出,在调用函数中对数据进行处理. 本程序需要用到实型变量作为数据主要数据类型.
2.2 设计表示
本程序有两大模块,主函数MAIN()和被调用函数VAL()
2.3实现注释
程序开发环境为“Windows XP sp2中文版“为操作系统,运行环境turbo c/vc 6.0等等可以运行C语言程
2.4详细设计
3.用户手册
用户打开turbo c/vc 6.0的界面,启动本程序,然后按ALT+R运行程序,用户根据提示输入x值, 然后按回车键,最后用ALT+F5看运行结果。
4.调试报告
在调试过程中,如果在主函数中没有调用函数y=VAL(x),结果可以运行,但不能得到正确的结果.由此可知,我们在做主控函数时,一定要注意调用函数的重要性.
5.源程序清单
#include<stdio.h>
void main()
{float VAL(float x);
float x,y;clrscr();
printf("input x=");
scanf("%f",&x);
y=VAL(x);
printf("y= %f",y);
}
float VAL(float x)
{float y;
if(x<1)
y=x;
else if(x>=1&&x<10)
y=2*x-1;
else
y=3*x-11;
return(y);
}
❼ 在vs2005中c语言的atoi函数可以用吗怎么用
如果你需要整数和字符串之间的转换的话,在C++下面可以参考我的代码:
#include <sstream>
#include <string>
//将val的值转换成字符串并保存在str里
template <typename T>
inline std::string& toString(T val, std::string& str)
{
std::ostringstream strm;
strm << val;
str = strm.str();
return str;
}
//将str字符串里的T类型的数据转换出来并保存在val变量里
template <typename T>
inline T valueOf(T& val, std::string& str)
{
std::istringstream strm(str);
strm >> val;
return val;
}
❽ atoi这个函数的作用是什么,在编程中怎么用
把字符串类型的数字转换成整数类型
int c_int=atoi(c_char)
❾ 做一个类似atoi功能的c代码编程,请实现一个c语言中类似atoi的函数功能(输入可
#include<stdio.h>
intatoi(constchar*s);
intmain(void)
{
printf("%d ",atoi("-1234"));
return0;
}
intatoi(constchar*s)
{
intsign=1,n;
if(*s=='+'||*s=='-')
{
if(*s=='-')
{
sign=-1;
}
++s;
}
for(n=0;*s>='0'&&*s<='9';++s)
{
n=n*10+*s-'0';
}
returnsign*n;
}