c语言存储字符串
字符型数据在内存中储存的是它的ASCII码值,它是一个字节,所有数据类型在内存中都是以0和1代码二进制储存的,这个原则不会变。
在C语言中,char型数据是将一个字符常量放到一个字符变量中,并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。
编码中,一个汉字字符存储需要2个字节。在UTF-8编码中,一个英文字母字符存储需要1个字节,一个汉字字符储存需要3到4个字节。在UTF-16编码中,一个英文字母字符或一个汉字字符存储都需要2个字节。在UTF-32编码中,世界上任何字符的存储都需要4个字节。
(1)c语言存储字符串扩展阅读:
由于标准 ASCII字符集字符数目有限,在实际应用中往往无法满足要求。为此,国际标准化组织又制定了 ISO2022 标准,它规定了在保持与 ISO646 兼容的前提下将 ASCII字符集扩充为 8 位代码的统一方法。
ISO 陆续制定了一批适用于不同地区的扩充 ASCII字符集,每种扩充 ASCII 字符集分别可以扩充 128 个字符,这些扩充字符的编码均为高位为 1 的 8 位代码(即十进制数 128~255 ),称为扩展 ASCII 码。
⑵ c语言中怎样定义字符串
C语言本身是没有设置一种类型来定义字符串变量的,字符串的存储完全依赖于字符数组,但字符数组又不等于是字符串变量。在字符型一维数组存放字符串,并规定以字符'\0'作为字符串结束标志。
⑶ C语言中字符串的存储以及输出问题
1.
换行是puts的自带技能,使用puts会自动换行
2.
char c[]={'H','i','\0'};跟char c[]={'H','i'}; 长度不一样,它们的区别就是一般字符数组和字符串的区别
// 这里字符数组c的长度为3,包含'H','i','\0'这三个元素,其中'\0'为字符串结束符
// c可以作为字符串使用,等效于char c[]="Hi";
char c[]={'H','i','\0'};// 这里字符数组c的长度为2,包含'H','i'这两个元素,不含字符串结束符
// c只是一个字符数组,不能作为字符串使用;
char c[]={'H','i'}; 用printf()函数输出看看就能更明白了。
还有问题的话可以继续追问。
⑷ C语言中是用字符串变量来存放字符串 是对还是错 为什么
C语言中,没有字符串这种数据类型,是用字符数组来存放字符串,所以这种说法是错的
⑸ c语言中有没有字符串类型如何存放和处理字符串
没有字符串类型,但是C语言中字符串实际就是多个字符链接在一起,所以可以用字符数组或者指针。可以这样定义
char s[]="this is a string";
C语言也有string.h头文件,使用这个头文件可以直接这样
string s="this is a string";
望采纳
⑹ C语言是怎么存储字符串的末尾的\0需要自己手动输入吗
C语言中的字符串,应该说是指字符串常量,如:"hello",
"how
are
u"等,这些常量字符串本身在末尾存有一个\0,因\0是不可见字符,所以,看不到。
可以把字符串存储到一个字符数组中,存储方法分为三种:
1、定义字符数组,用常量字符串进行初始化
char str1[10]="hello"; //sizeof(str1)=10
char str2[]="how are u" ; //未指定数组大小,按初始化字符串实际大小开辟数组空间,sizeof(str2)=10 ; 9个字符+1个\0 通过此方法,可以验证常量字符串中含有\0
2、定义字符数组,不初始化,采用字符串赋值操作函数进行赋值
char str[100];
strcpy( str, "hello"); //字符串拷贝
sprintf(str, "%s world", "hello"); //格式化输入,得到hello world
以上函数会自动在字符串尾赋值字符串结束符
3、定义字符数组,不初始化,采用循环,逐位赋值字符,并在结束位置赋值\0
char str1[10];
char str2[]="hello" ;
int i,j;
for(i=0,j=0;str2[i]!='\0';i++ ) //遍历字符串str2
if ( i%2 ) //只取偶数位
str1[j++]=str2[i];
str1[j]='\0'; //手动赋值结束符
⑺ C语言用什么贮存字符串数据
1.字符串用字符数组保存。
2.在读取字符串时,要用 %s 格式控制符,而不是 %c
3.字符串的比较不能用相等操作符(==),而要用strcmp()函数(需要包含string.h头文件)。
例如你的程序中要比较n和"Maiiho"是否相等,应该用以下表达式:
if (!strcmp(n,"Maiiho")) /*如果要比较的两个字符串相等,strcmp()函数返回0,否则返回非0值*/
⑻ c语言从终端输入字符,这些字符如何存
数值在计算机中是以二进制的形式存储的。
字符和字符串是先编码后再转化为二进制的形式存储,编码方式如(ASCII码,UTF8)。
例如,char x=‘a’,将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。
C中字符表示用单引号,字符串表示用双引号,字符串是一段连续的字符。
⑼ C语言如何在代码中将汉字存入一个已经声明过的字符串
这个要看字符集,不同字符集对一个字符的定义是不一样的。你可以基本这么认为,你不可能一个字一个字的给汉字赋值,因为一个汉字对应多个字符,你不能拆开来赋值。你只能用strcpy当作字符串来拷贝
⑽ c语言中怎么存一个字符串
在c语言中存储一个字符串,一般有两种方法,一种是字符指针,一种是使用字符数组。比如:
constchar*str="hello";//使用字符串指针
constcharstr[]="hello";//使用字符数组
如果保存的字符串,需要修改。一般使用字符数组。比如:
charpath[256]="c:\windows\";
strcat(path,"system32");