ST语言中如何将实数转化为字符串转换为实数

> 初学者问一个C语言问题把十六进制数字组成的字符串转化为与之等价的整型值#include<st
初学者问一个C语言问题把十六进制数字组成的字符串转化为与之等价的整型值#include<st
ip789456 & &
发布时间: & &
浏览:85 & &
回复:1 & &
悬赏:0.0希赛币
初学者问一个C语言问题把十六进制数字组成的字符串转化为与之等价的整型值
& #include &
& #define & YES & 1
& #define & NO & 0
& int & htoi(char & *s)
& int & hexdigit,i=0,inhex,n;
& if(s[i]== '0 ')
& if(s[i]== 'x '||s[i]== 'X ')
& inhex=YES;
& for( & ;inhex=YES;++i)
& if(s[i]& = '0 ' & && & s[i] &= '9 ')
& hexdigit=s[i]- '0 ';
& else & if(s[i]& = 'a '&&s[i] &= 'f ')
& hexdigit=s[i]- 'a '+10;
& else & if(s[i]& = 'A '&&s[i] &= 'F ')
& hexdigit=s[i]- 'A '+10;
& inhex=NO;
& if(inhex==YES)
& return &
& char & *s= &oxc6f &;
& printf( &%d &,htoi(s));
运行时说应用内存错误,请问各位大侠,这是什么问题
第一个错 inhex=YES 应为 inhex == YES
第二个错 char *s= &oxc6f &; 正确的输入应为char *s= &0xc6f &;
初学都这样,写个几千行以后就好了:)
PS,把inhex ==YES 习惯性写为 YES==index就不会老犯这个错了ipcopy & &
& & (0)(0)
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-c语言中如何将 int转化为string 类型_百度知道
c语言中如何将 int转化为string 类型
可以使用以下方式:1、使用循环,把每一位数字转换成相应的字符,参考代码如下:#include&&stdio.h&#include&&string.h&int&main(){ int&num,&n,&i&=&0; char&str[20],&tmp[20]; scanf(&%d&,&&num); n&=&num&%&10; while&(n&0) {
tmp[i++]&=&n&+&'0';
num&=&(num&-&n)&/&10;
n&=&num&%&10; } tmp[i]&=&'\0'; for&(i=0;&i&=strlen(tmp)-1;&i++) {
str[i]&=&tmp[strlen(tmp)-i-1]; } str[i]&=&'\0'; printf(&%s\n&,&str); return&0;}2、使用库函数,代码如下:#include&&stdio.h&#include&&string.h&int&main(){ int& char&str[20]; scanf(&%d&,&&num); itoa(num,&str,&10); printf(&%s\n&,&str); return&0;}
其他类似问题
为您推荐:
提问者采纳
楼主你好,可以自己设计一个函数,将整数存到数组中,思路是如12345,将每位数1,2,3,4,5分别取出来,并按一定顺序存放起来,以下程序可以供楼主参考:#include &stdio.h&main (){ int a,n=0,i; char b[100]; scanf (&%d&,&a); for (a;a&0;a=a/10) n=n*10+a%10;for (i=0;n&0;n=n/10)b[i++]=n%10+48;b[i]=0;printf (&%s\n&,b);}望楼主采纳。
提问者评价
hehe,刚刚运行了下,不错哦。谢谢
string的相关知识
其他1条回答
int转字符串?有个函数itoa()可以做
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言之字符串
一、选择题
1、若有语句:char&&*line[5];,以下叙述中正确的是
A) 定义line是一个数组,每个数组元素是一个基类型为char的指针变量
B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
C)定义line是一个指针数组,语句中的*号称为间址运算符
D)定义line是一个指向字符型函数的指针
2、有以下程序
&&&&#include&&& string.h&
&&&& main()
&& { char&&p[]={'a', 'b', 'c'},&&q[10]={'a', 'b', 'c'};
&&&& printf(&%d %d\n&, strlen(p), strlen(q));
&&以下叙述中正确的是
A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
B)由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3
C)由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3
D)由于p和q数组中都没有字符串结束符,故长度都不能确定
3、有以下程序,其中函数f的功能是将多个字符串按字典顺序排序
&&&& #include&&& string.h &
&&&& void f(char&&*p[], int&&n)
&&&&{ char&&*t;&&&&int&&i,j;
&&&&&&for(i=0; i & n-1; i++)
&&&&&& for(j=i+1; j & j++)
&&&&&& if(strcmp(p[i],p[j]) & 0){ t=p[i];&&p[i]=p[j];&&p[j]=t;&&}
&&&& main()
&& { char&&*p[5]={&abc&,&aabdfg&,&abbd&,&dcdbe&,&cd&};
&&&& f(p, 5);
&&&& printf(&%d\n&, strlen(p[1]));
程序运行后的输出结果是
A)2&&&&&&&&&&B)3&&&&&&&&&&C)6&&&&&&&&&& D)4
4、有定义语句:int&&b;char&&c[10];&&,则正确的输入语句是
A)scanf(&%d%s&,&b,&c);&&&&&&B)scanf(&%d%s&,&b,c);
C)scanf(&%d%s&,b,c);&&&&&&&&D)scanf(&%d%s&,b,&c);
5、以下能正确定义一维数组的选项是
A)int&&a[5]={0,1,2,3,4,5};&&&& B)char&&a[]={0,1,2,3,4,5};
C)char&&a={'A','B','C'};&&&&&& D)int&&a[5]=&0123&;
6、已有定义:char a[]=&xyz&,b[]={'x','y','z'};,以下叙述中正确的是
A)数组a和b的长度相同&&&&&&&&B)a数组长度小于b数组长度
C)a数组长度大于b数组长度&&&& D)上述说法都不对
7、以下语句或语句组中,能正确进行字符串赋值的是
A)char&&*&&*sp=&right!&;&&&&B)char s[10];&&s=&right!&;
C)char&&s[10];&&*s=&right!&;&& D)char&&*sp=&right!&;
8、有以下程序
&&&&main()
&&&&char&&s[]=&159&,*p;
&&&&printf(&%c&,*p++);
&&&&printf(&%c&,*p++);
程序运行后的输出结果是
A)15&&&&&&&& B)16&&&&&&&&C)12&&&&&&&& D)59
9、有以下函数
&&&&fun(char&&*a,char&&*b)
&&while((*a!='\0')&&(*b!='\0')&&(*a==*b))
&&&& {&&a++;&&b++;}
&&&&&&return&&(*a-*b);
该函数的功能是
A)计算a和b所指字符串的长度之差
B)将b所指字符串复制到a所指字符串中
C)将b所指字符串连接到a所指字符串后面
D)比较a和b所指字符串的大小
10、有以下程序
&&&&point(char&&*p)
&&&&{ p+=3;&& }
&&&&main()
&& { char&&b[4]={'a','b','c','d'},*p=b;
&&&& point(p);&&&&printf(&%c\n&,*p);
程序运行后的输出结果是
A)a&&&&&&&&B)b&&&&&&&&C)c&&&&&&&& D)d
11、s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,
执行语句S;则以下选项中正确的是
A)if(s1&s2)S;&&&&&&&&&&&&&&&& B)if(strcmp(s1,s2))S;
C)if(strcmp(s2,s1)&0) S;&&&&&&D)if(strcmp(s1,s2)&0)S;
12、有以下程序
&&&&main()
&& { char str[][10]={&China&,&Beijing&},*p=
&&&& printf(&%s\n&,p+10);
程序运行后的输出结果是
A)China&&&&&&&& B)Beijing&&&&&&&&&&C)ng&&&&&&&&&&&&D)ing
13、有以下定义
&&&&#include & stdio.h &
&&&&char a[10],*b=a;
&&&&不能给数组a输入字符串的语句是
A)gets(a);&&&&&&B)gets(a[0])&&&&C)gets(&a[0]);&&&&&& D)gets(b) ;
14、有以下程序
&&&&main( )
&& { char *p[10]={&abc&,&aabdfg&,&dcdbe&,&abbd&,&cd&};
&&&& printf(&%d\n&,strlen(p[4]));
执行后输出结果是
A)2&&&&&&&&&& B)3&&&&&&&&&& C)4&&&&&&&&&& D)5
15、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是
A)char s[10]= &abcdefg&;&&&& B)char t[]=&abcdefg&,*s=t;
C)char s[10];s=&abcdefg&;&& D)char s[10];strcpy(s, &abcdefg&);
16、下列选项中正确的语句组是
A)char&&s[8];&&s={&Beijing&};&& B)char&&*s;&&s={&Beijing&};
C)char&&s[8];&&s=&Beijing&;&&&& D)char&&*s;&&s=&Beijing&;
17、以下程序中函数scmp的功能是返回形参指针s1和 s2所指字符串中较小字符串的首地址
&&&&#include&& & stdio.h &
&&&&#include&& & string.h &
&&&&char&&*scmp(char&&*s1,&&char&& *s2)
&&{ if( strcmp (s1, s2)&0)
&&&&return(s1);
&&&&else&& return(s2);
&&&&main ()
&&{ int&&i;&&&&char&& string,&&str[0],&&str[1],&&str[2];
&&&&for(i=0;i&3;i++)&&gets(str[i]);
&&&&strcpy(string,scmp(str[0],str[1]));/*库函数strcpy对字符串进行复制*/
&&&&strcpy(string,scmp(string,str[2]));
&&&&printf(&%s\n&,string);
运行时依次输入:abcd、abba和abc三个字符串,则输出结果为
A)abcd&&&&&&&& B)abba&&&&&&&&&&C)abc&&&&&&&&&&&&&&D)abca
18、有以下程序
&&&&#include&& & string.h &
&&&&main()
&&{ char str[][20]={&Hello&,&Beijing&}, *p=
&&&&printf(&%d\n&,strlen(p+20));
程序运行后的输出结果是
A)0&&&&&&&&&&&&B)5&&&&&&&&&&&&C)7&&&&&&&&&&&&&&D)20
19、已定义以下函数
&&&&fun(char&&*p2,&&char&& *p1)
&& { while((*p2=*p1)!=&\0&){p1++;p2++; }&&}
函数的功能是
A)将p1所指字符串复制到p2所指内存空间
B)将p1 所指字符串的地址赋给指针 p2
C)对p1和p2两个指针所指字符串进行比较
D)检查p1和p2两个指针所指字符串中是否有&\0&
20、有以下程序
&&&&main()
&& { char&& *s[]={&one&,&two&,&three&},*p;
&&&& p=s[1];
&&&& printf(&%c,%s\n&,*(p+1),s[0]);
执行后输出结果是
A)n,two&&&&&&&&B)t,one&&&&&& C)w,one&&&&&&&&D)o,two
21、以下函数
&&&&fun(char&&*s1,char *s2)
&&{ int&& i=0;
&&&&while(s1[i]==s2[i]&& s2[i]!=&\0&)i++;
&&&&return(s1[i]==&\0&&& s2[i]==&\0&);
&&此函数的功能是
A)将s2所指字符串赋给s1
B)比较s1和s2所指字符串的大小,若s1比s2大,函数值为1,否则函数值为0
C)比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0
D)比较s1和s2所指字符串的长度,若s1比s2长,函数值为1,否则函数值为0
22、有以下程序
&&&&#include & string.h &
&&&&main()
&&{ char *p=&abcde\0fghjik\0&;
&&&&printf(&%d\n&,strlen(p));
程序运行后的输出结果是
A)12&&&&&&&&&&B)15&&&&&&&&&&C)6&&&&&&&&&& D)5
23、有以下程序
&&&&void ss(char *s,char t)
&& { while(*s)
&&&&{ if(*s==t) *s=t-&a&+&A&;
&&&&&&s++;&&}
&&&&main()
&&{ char str1[100]=&abcddfefdbd&,c=&d&;
&&&&ss(str1,c);&& printf(&%s\n&,str1);
程序运行后的输出结果是
A)ABCDDEFEDBD&&&&B)abcDDfefDbD&&&&C)abcAAfefAbA&& D)Abcddfefdbd
24、下程序段的输出结果是
char&& s[]=&\\141\141abc\t&;
&&&&printf&&(&%d\n&,strlen(s));
A)9&&&&&&&& B)12&&&&&&&&&& C)13&&&&&&&& D)14
25、以下程序的输出结果是
&&&&main()
&&{ char&& ch[3][5]={&AAAA&,&BBB&,&CC&};
&&&&printf(&%s\n&,ch[1]);
A)&AAAA&&&&&&&&& B)&BBB&&&&&&& C)&BBBCC&&&&&&& D)&CC&
26、以下定义语句中,错误的是
A)int&&a[]={1,2};&&&&&&&&B)char&&*a[3];
C)char s[10]=&test&;&& D)int&&n=5,a[n];
27、 以下选项中,不能正确赋值的是
A)char&&s1[10];s1=&Ctest&;
B)char&&s2[]={&C&,&t&,&e&,&s&,&t&};
C)char&&s3[20]= &Ctest&;
D)char&&*s4=&Ctest\n&
28、当执行下面的程序时,如果输入ABC,则输出结果是
&&#include&&&stdio.h&
&&#include&&&string.h&
{ char&&ss[10]= &12345&;
&& gets(ss); strcat(ss, &6789&);&&printf(&%s\n&,ss);
A)ABC6789&&&&&&B)ABC67&&&&C)12345ABC6&&&& D)ABC456789
29、有如下程序
&&&&main()
&& { char&&&& s[]=&ABCD&,&& *p;
&&&& for(p=s+1; p& s+4; p++)&& printf (&%s\n&,p);
该程序的输出结果是
A)ABCD&&&&&&&&B)A&&&&&&&&&&&&&& C)B&&&&&&&&&&&&&&D)BCD
&&&&BCD&&&&&&&&&&&&&&B&&&&&&&&&&&&&&&&&& C&&&&&&&&&&&&&&&&&&CD
&&&&CD&&&&&&&&&&&&&& C&&&&&&&&&&&&&&&&&& D&&&&&&&&&&&&&&&&&&D
&&&&D&&&&&&&&&&&&&&&&D
30、有如下程序
&&&&main()
&&{ char&&ch[2][5]={&6937&,&8254&},*p[2];
&&&&int&&i,j,s=0;
&&&&for(i=0;i&2;i++)&&&& p[i]=ch[i];
&&&&for(i=0;i&2;i++)
&&&&for(j=0;p[i][j]&&\0&;j+=2)
&&&&s=10*s+p[i][j]-&0&;
&&&&printf(&%d\n&,s);
该程序的输出结果是
A)69825&&&&&&&&&& B)63825&&&&&&&&&& C)6385&&&&&&&&&& D)693825
31、设有数组定义: char array [ ]=&China&; 则数组 array所占的空间为
A)4个字节&&&&&& B)5个字节&&&&&&&&C)6个字节&&&&&& D)7个字节
32、设已有定义: char *st=&how are you&; 下列程序段中正确的是
A)char&&a[11], *p;&&strcpy(p=a+1,&st[4]);
B)char&&a[11];&&&&&&strcpy(++a, st);
C)char&&a[11];&&&&&&strcpy(a, st);
D)char&&a[], *p;&&&&strcpy(p=&a[1],st+2);
33、下列程序执行后的输出结果是
&&&&main()
&& { char&&arr[2][4];
&&&& strcpy(arr[0],&you&);&&strcpy(arr[1],&me&);
&&&& arr[0][3]='&';
&&&& printf(&%s \n&,arr[0]);
A)you&me&&&&&&&& B)you&&&&&&&&&&&&C)me&&&&&&&&&&&&D)err
34、执行下列程序时输入:123&空格&456&空格&789&回车&,输出结果是
&&&&main()
&&{&&char&&s[100];&&int&&c,
&&&& scanf(&%c&,&c);&&scanf(&%d&,&i);&&scanf(&%s&,s);
&&&& printf(&%c,%d,%s \n&,c,i,s);
A)123,456,789&&&&&&B)1,456,789&&&&&& C)1,23,456,789&& D)1,23,456
35、下列描述中不正确的是
A)字符型数组中可以存放字符串
B)可以对字符型数组进行整体输入、输出
C)可以对整型数组进行整体输入、输出
D)不能在赋值语句中通过赋值运算符&=&对字符型数组进行整体赋值
一.选择题 1&5&&&&&& ABDBB&&&&6&10&&&&&& CDADA&&&&&&11&15&&&& DBBAC 16&20&&&& DBCAC&&&&21&25&&&&&&CDBAB&&&&&&26&30&&&& DAADC 31&35&&&& CAADC&&&&
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。

我要回帖

更多关于 设实数st分别满足 的文章

 

随机推荐