- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【2017年整理】数字字符串转化成整形数或实行数
数字字符串转化成整形数或实行数
#include iostream.h
#include stdio.h
#include string.h
double strtof(char *p);
int strtoi(char *p);
char *ftostr(double a);
char *itostr(int d);
void main()
{
char *p;
coutstrtoi(-12345)endl; //转化为整数
printf(%.10f\n,strtof(-12345.205)); //转化为浮点数
p=ftostr(-12.34); //浮点数转化为字符串
coutpendl;
delete []p;
p=itostr(-123456); //整数转化为字符串
coutpendl;
delete []p;
}
double strtof(char *p)
{ double a,d=0,w=10;
int i=0,t=1;
if(p[i]==+)
{ t=1;i++;}
if(p[i]==-)
{ t=-1;i++;}
while(p[i]!=\0 p[i]!=.)
{ if(p[i]0 || p[i]9)
{ couti !!!!endl;return 0;}
d=d*10+p[i]-0;
i++;
}
if(p[i]==.) i++;
a=d;d=0;
while(p[i]!=\0)
{ if(p[i]0 || p[i]9)
{ couti !!!!endl;return 0;}
d=d+(p[i]-0)/w;
i++;w=w*10;
}
a=(a+d)*t;
return a;
}
int strtoi(char *p)
{ int d=0,i=0,t=1;
if(p[i]==+)
{ t=1;i++;}
if(p[i]==-)
{ t=-1;i++;}
while(p[i]!=\0)
{ if(p[i]0 || p[i]9)
{ cout!!!!endl;return 0;}
d=d*10+p[i]-0;
i++;
}
return d*t;
}
char *ftostr(double a)
{ int in,t,w,i=0;
double fn;
char s[100],*p=s,ch;
if(a0)
{ a=-a;t=1;}
else
{ t=0;}
in=(int)a;
fn=a-in;
do
{
p[i]=in%10+0;i++;
in=in/10;
}while(in!=0);
w=i;
p[i++]=.;
int k=1;
while(fn!=0 k16)
{
fn=fn*10;
in=(int)fn;
p[i++]=in+0;
fn=fn-in;
k++;
}
p[i]=\0;
for(i=0;iw/2;i++)
{ ch=p[i];p[i]=p[w-i-1];p[w-i-1]=ch;}
p=new char[strlen(s)+2];
if(t==1)strcpy(p,-);
strcat(p,s);
return p;
}
char *itostr(int d)
{
char *p;
int w=1,i=0,t=d;
while(t!=0)
{
w=w*10;
i++;
t=t/10;
}
p=new char[i+2];
i=0;
if(d0)
{ p[i++]=-;
d=-d;
}
while(w1)
{ w=w/10;
p[i++]=d/w+0;
d=d%w;
}
p[i]=\0;
return p;}
字符串添加到类
/下面提供两种查找子串程序,选择一种方法为Mystr类添加查找子串成员函数
//并编写一个删除子串的成员函数
//查找子串方法1
#include stdio.h
void main()
{
char *s=abcdefghijk,*t=def;
int i,j,k,m=-1;
for(i=0;s[i]!=\0;i++)
{ k=i;
for(j=0;t[j]!=\0 s[k]!=\0 s[k++]==t[j];j++);
if(t[j]==\0)
{ m=i;
break;
}
}
printf(%d\n,m);//没找到输出-1
}
//查找子串方法2
#include stdio.h
void main()
{
char *s=abc
文档评论(0)