c语言如何把char s;随便给s赋值,让t[]={"(给s赋得值)"}

例如s=110.11(或1235.52之类的)变成他t[]={"110.11(或1235.52)"}

第1个回答  2011-09-21
首先 char类型只允许一个字符 其次C语言不允许这样赋值 你可以一个一个的将S内的字符读入
然后进行运算 最后赋值给t[]
例如 先读进s的第一个1 判断后将1赋值给a 读进第二个1 将a乘以10再加上这个数字即1得到a为11,然后读进s第三个字符0然后将a乘10加上0读进小数点后a不在乘十再加上小树点后的数字得出a为110.11 是个数字 不是字符 这样就将字符转化为数字 最后将a赋值给t[]
第2个回答  2011-09-22
你这个情况不能称为“赋值"的,因为你只是定义了一个数组而已,数组里面的元素都是可以改变的,唯独数组名作为常量不能被二次改变,strcpy 函数的作用是把字符串hello拷贝到s所代表的内存空间去,sizeof(string) 改值是大于hello字符串的,所以你可以拷贝,如果你想拷贝过长的字符串由于内存不够就会报段错误了。
还有一种情况是 你定义了一个字符指针char * s = ”string“;这么定以后s本身可以被重新赋值,但是却不能用strcpy函数,因为s指向的是一个字符串常量!!你不能对s指向的常量进行修改。否则会出现程序崩溃的情况。这根上面的情况真好相反。不过大原则是相同的,那就是常量不能被赋值!!
第3个回答  2011-09-21
你想要的结果 需要把每一位都算出来,然后让每一个数字加48就得到该数字的ASCll码
例如算的每一位 为1 2 4 5,那么转换后就变成了“1245”,因为 数字和他的ASCLL码之间的差是48, 如数字0的ASCLL码是48 即“0”,数字1的ASCLL码是49 即“1 .....以此类推”
第4个回答  2011-09-21
char 类型存不下110.11或1235.52 , 强行赋值会导致数据丢弃。所以LZ看不到相应的结果。
可行的操作:
double f=1235.52;
char t[32];
sprintf(t , "%.2lf" , f );追问

sprintf 这个语句是怎么用的?

追答

与printf语句一样,你查一下C函数就可以了

本回答被提问者采纳
第5个回答  2011-09-21
t[]是一个数组,而s是一个变量,把一个变量赋值给一个数组我好像没听过,只能把一个变量赋值给数组中的一个元素吧!!!!
如t[0]=s;

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网