字符型数据(字符常量和字符串常量)使用及区别
来源:互联网 发布:java 闰年 编辑:程序博客网 时间:2024/06/05 12:46
1-字符型
char c='a';//C 语言中,使用单引号把字符引起来构成字符常量,双引号"abc"是字符串常量也可以用字符对应的ASCII码赋值,如下:
char c=97;
char c='good';得到的是最后一个字符 即'd'
C语言是ASCII码的形式存储字符型变量的,存储形式与整数类似,所以字符型和整数(范围0-255)之间可以通用。
2-字符串
II-长度(占用内存字节)
在实际应用中人们关心的是有效字符串的长度而不是字符数组的长度,C语言规定了一个“字符串结束标志”,以字符'\0'代表。如果有一个字符串,其中第10个字符为'\0',则此字符串的有效字符为9个。也就是说,在遇到第一个字符'\0'时,表示字符串结束,由它前面的字符组成字符串。
系统对字符串常量也自动加一个'\0'作为结束符。例如"C Program”共有9个字符,但在内存中占10个字节,最后一个字节'\0'是系统自动加上的。(通过sizeof()函数可验证)
3-strlen 和sizeof区别
4-两种初始化的长度对比
5-字符串的表示形式
在C语言中,可以用两种方法表示和存放字符串:
(1)用字符数组存放一个字符串
char str[ ]="I love China";
(2)用字符指针指向一个字符串
char* str="I love China";
C语言对字符串常量是按字符数组处理的,在内存中开辟了一个字符数组用来存放字符串常量,程序在定义字符串指针变量str时只是把字符串首地址(即存放字符串的字符数组的首地址)赋给str。
char* a ="helko";
char* s[]={"how","are","you"};
int lenthS=0;
char ss[100]="\0abcd";
printf("a[2]=%c\n",*(a+2));//a[2]=l
printf("%s\n",a+1);//elko
lenthS = sizeof(s)/sizeof(char*);
printf("lenthS=%d\n",lenthS);//3
printf("%s\n",*(s+1));//are
printf("lenth of SS:%d\n",strlen(ss));//0
return 0;
}
6-字符串gets 和 scanf()的区别
char string[15];
gets(string); /*遇到回车认为输入结束*/
scanf("%s",string); /*遇到空格认为输入结束*/
所以在输入的字符串中包含空格时,应该使用gets输入;
7-字符串转换函数int main(){
char a[]="zbc";
char b[]="ASD";
printf("before:%s\n",a);
printf("Uper:%s Lower:%s\n",strupr(a),strlwr(b));
printf("after;%s\n",a);
return 0;
}
- 字符型数据(字符常量和字符串常量)使用及区别
- 字符串常量 和字符常量
- C语言中字符常量和字符串常量的区别
- C语言中字符串常量和字符常量的区别
- 字符串常量和字符数组
- 字符常量VS字符串常量
- 字符串常量与字符常量
- 字符常量与字符串常量
- 字符常量与字符串常量
- 字符数组和字符常量的区别
- 字符数组、字符串及常量字符串详解
- c中字符串常量和字符数组的区别
- 【C++程序设计常见面试题】说出字符常量和字符串常量的区别,并使用运算符sizeof计算有什么不用?(00)
- 字符常量,字符变量,字符数组,字符串常量,字符串指针
- 字符串常量初始化指针和字符数组
- 关于字符串常量和字符指针
- 字符串常量和字符数组的区分
- 字符常量和字符变量
- Vue.js Webpack warning
- java切蛋糕
- 拷贝构造的调用时机
- 一种Unity2D多分辨率屏幕适配方案
- POJ LITTLE SHOP OF FLOWERS(动态规划)
- 字符型数据(字符常量和字符串常量)使用及区别
- 微信新增永久图文素材前上传图文内容中图片的方法
- 分享下看到的一篇 十分受用的关于hadoop2—namenode—HA原理详解
- Thread.start()和Thread.run()的区别
- 把地址当参数传递
- html<meta http-equiv="" content="">中详解(一)
- 记录一下自己的学习过程
- Oracle client 12.1.0.2 for MacOS[Python:cx_Oracle]
- shell简介