关于编程中字符串,数值和编译器的问题! c语言中字符串\0的问题

作者&投稿:繁昆 (若有异议请与网页底部的电邮联系)
1.是的,你不看代码,你分辨不出这三个是字符串还是是数值123
2.当然是保存为字符串比较好
你输入的任何字符,都可以算成一个整体字符串,当然也可以把其中的数字,当成数值,用字符串 的话,可以统一做处理,加密一次就可以完成,如果分开成字符串,数值的话,还得判断他的类型,再分开做加密处理,而且没有通用性。
3.准确的说 数值0 翻译成int类型 0000 0000 0000 0000 0000 0000 0000 0000(占32位二进制位)
字符'0' (ASCII码值48)翻译成 0011 0000(只占8位)
字符串"0" 当成两个字符处理'0''\0'所以翻译成 0011 0000 0000 0000(一共占16位)
4.整数值48,存的是他的二进制补码,正常的补码跟原码一样,所以就是以二进制
0011 0000保存,前面应该还有24个0,因为一般int一共占32位
显示时,你同一段内存,不同的显示规则,显示的肯定不一样
就比如 0011 0000
输出整数就是48
输出字符串就是 字符0
当字符串输出 也是 0
文本框接到的都是 011010101这种数串,他就是你数据在内存中的体现,要你自己去分析其中代表的含义,分析完了再以自己想要的方式,显示出来。

一、文本框 只认 字符串
二、想搞清楚 ,"0"代表字符串,'0'代表字符值.......请去深入学习编译原理
三、如果你想把数值123显示在文本框,请自己写一段程序将数值123转变为字符串"123" 再交给文本框
如果你想 在文本框里输入数值 并传递给某个数值型变量
请把 从文本框里读取的 字符串 转换为数值.再传给你的变量
(不然就去找个别人写的现成控件,免得自己写代码转换)

1.是的。输出是看不出的
2.应该存为字符串,数值有很多问题,前导0,小数不精确,位数不够,还有有字母有数字时没有办法解决。密码获取的时候直接获取字符串。加密是字符串也可以加密。一般是把密码加密之后比较,存的也是加密的结果,不然容易出问题,也可以用公钥私钥做加密。
3.数字0就翻译成00000000,然后知道这个位置是个int,short之类的(通过变量的属性)。字符‘0’的ascii是48,和int类似存法,就是00110000,如果直接转成int,就是48这个数。字符串“0”是先有一个字符‘0’,之后是字符串结束符‘\0’,这个结束符二进制是00000000,就是ascii为0的字符。字符串的变量是存了一个指向字符串里第一个字符的位置的指针,通过字符串的结束符来说明结束位置。

4.整型的48是00110000,你要输出到字符串以后就是两个字符,4和8.文本框里存的是字符串。你可以对文本框的字符串进行修改试试

1.对。2.肯定是选择字符串好,不管是混合密码还是纯数字的。只能算字符。3."0"被翻译为"0\0",48如果是整型就按整型输出,不拆成两个机内码,如果是字符串型那就按字符串型存储,直接输出字符串。整型的把二进制转成十进制的再输出

C语言中输出语句不对但是程序正确!是不是编译器的问题阿!~

这是你的字符数组开得太小了!字符串“include gcc”要占13个字节。你要稍开大一点,改为

char max[20];或char max[50];就没问题。

对于字符串"\0 m n",就是 "\0空格m空格n" 因为\0是一个整体,意思就是空值,也就是字符串的结束标志,所以长度为0

而对于"\026[12,m"来说,就是“\026 [ 1 2 , m”6项,阴差阳错中,\026组合到了一起构成了转义字符,即为十进制数据22,算是一个整体,所以就为6!
看看书吧,转义字符那个地方,一看就懂了

关于编程中字符串,数值和编译器的问题!
答:1.是的,你不看代码,你分辨不出这三个是字符串还是是数值123 2.当然是保存为字符串比较好 你输入的任何字符,都可以算成一个整体字符串,当然也可以把其中的数字,当成数值,用字符串 的话,可以统一做处理,加密一次就可以完成,如果分开成字符串,数值的话,还得判断他的类型,再分开做加密处理...

c语言数字和字符的相互转换
答:int a=9;char b;b=(char)a;printf("%c",b);输出的结果就是9。在要转换的变量面前加括号,括号里面填目标类型即可。

C语言编程:编写函数,统计字符串中字母、数字、空格和其他字符的个数...
答:include<stdio.h> void TongJi(char s[]){ int ZiMu=0,KongGe=0,ShuZi=0,QiTa=0,i;for(i=0;s!='\0';i++){ if(s==32)KongGe++;else if((s>=48)&&(s<=57))ShuZi++;else if(((s>=97)&&(s<=122))||((s>=65)&&(s<=90)))ZiMu++;else QiTa++;} printf("空格:%...

字符串和数值怎么比大小
答:把数值看成一个字符串,再与其他字符串比较大小。如果有必要(比如编程),则需要先把数值转化为字符串。接下来就简单了,对于两个字符串,从左往右逐个比较字符的ASC码的大小,如果相同,就比较下一个字符,直到出现不同的字符为止,出现ASC码大的字符串为大字符串,反之为小字符串;或者一个字符串的...

请问大神,C语言题,编程功能实现:输入一个字符串,输出字符串中的数字部分...
答:void main(){char str[50];int i=0; //i是数组下标. gets(str); //输入字符串.int s=0;while(str[i]) //当数组元素不是字符串结束符时.执行while{ if(str[i]>='0'&&str[i]<='9') //如果数组元素是数字. 就输出这个元素. { s=s*10+int(str[i])-int('0');...

为什么C语言中,字符串和字符数组不一样?
答:一、字符串 "ABC"//这是一个字符串常量(也叫字符串字面量)上面的例子就是一个字符串,看似其有3个字符,实际上的处理是4个字符,包括C后面的'\0'字符也就是空字符null。编译器遇到空字符就结束处理了。在编程中也可以把字符串放到字符串数组当中处理:char str1[] = "ABC";//编译器会自动...

C++中什么是字符串,什么是字符字面值
答:字符串字面值是一串常量字符,字符串字面值常量用双引号括起来的零个或多个字符表示,为兼容C语言,C++中所有的字符串字面值都由编译器自动在末尾添加一个空字符。字符串没有变量名字,自身表示自身 "Hello World!" //simple string literal"" //empty string literal"\nCC\toptions\tfile.[cC]\n"...

c语言中string是什么意思(C语言string是什么数据类型)
答:1.C语言中字符串的表示方式有两种:字符指针和字符数组 2.字符指针表示字符串 从编译器角度分析:例如:char*p="linux";p是字符指针,"linux"字符串本身,当编译器遇到这种字符串表示时,会将指针和字符串本身分开处理,字符指针p是一个变量,将其放在栈上,而字符串本身"linux"则被存放在代码段,...

C语言中'a'和"a"有什么区别?
答:1、本质区别 双引号里面的是字符串, 而单引号里面的代表字符。2、输出区别 str = “a”输出的就是a这个字母;str = ‘a’输出的测试65 3、底层区别 用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。

编程中“char”是什么意思?
答:但char在标准中不指定为signed或unsigned,编译器可以编译为带符号的,也可以编译为不带符号的。使用指定长度的固定长度表示的字符串;比如char(8),则数据库会使用固定的1个字节(八位)来存储数据,不足8位的字符串在其后补空字符,在excel中char函数用于返回对应发于数字代码的字符。