C中字符串知识学习小记
来源:互联网 发布:java聊斋聂小倩 编辑:程序博客网 时间:2024/06/06 07:39
1:在C中我们说"H"这是一个字符串,总共占有2个字节,后面有一个'\0'伪零结束符。
2:字符串创建过程
在这里,为什么一个字符串可以赋给一个 char * 类型的指针变量呢?
1:当我们写hello时,就是告诉编译器,在只读数据段存储6个字节。
2:"hello"表达式的值表示字符串的第一个字符的地址。
3:字符串中传递参数:
//那么如果我们想要修改只读字符串中的内容,我们需要把数据放到一个数组中,相当于复制了一份只读数据段中的内容
例如这样
5:求一个字符串的有效字节长:
'H'这是一个数字。通过下面程序进行验证。
#include <stdio.h>int main(void){printf("%d %d\n",sizeof("c"),sizeof('s'));}
2:字符串创建过程
#include <stdio.h>int main(void){char * p = "hello world!";printf("%s\n", p);}
在这里,为什么一个字符串可以赋给一个 char * 类型的指针变量呢?
1:当我们写hello时,就是告诉编译器,在只读数据段存储6个字节。
2:"hello"表达式的值表示字符串的第一个字符的地址。
#include <stdio.h>int main(void){char * p = "world";//通过这一段代码的打印可以看出字符串代表的是一个地址。printf("%s\n",p);printf("%c\n",*("hello"));return 0;}
//越界的情况打印出来的数据增长了#include <stdio.h>void func(void){int * p ="hello!";write(1,p,10);}int main(void){int * q = "hello world";func();return 0;}
3:字符串中传递参数:
#include <stdio.h>int main(void){char * p = "hello word! %d\n";printf(p,5);return 0;}4:修改字符串的内容
#include <stdio.h>int main(void){char * p = "hello word!\n"; p[0] = 'H'; //这样编译就会出现问题,因为只读数据段的内容不能修改printf("%c\n",p[0]);//printf(p,5);return 0;}
//那么如果我们想要修改只读字符串中的内容,我们需要把数据放到一个数组中,相当于复制了一份只读数据段中的内容
例如这样
#include <stdio.h>#include <string.h>int main(void){ char * p = "hello world!"; char ch[64]; strcpy(ch,p); ch[0]='H'; printf("%s\n",ch); return 0;}
5:求一个字符串的有效字节长:
#include <stdio.h>#include <string.h>int main(void){char * p = "hello";// p[0] = 'H';//printf("%c\n",p[0]);//printf(p,5);char a[] = "hello";//strlen()这个函数是用来求一个字符串的有效字节长度,根据伪零结束时进行判断printf("%ld\n",strlen(a));return 0;}
0 0
- C中字符串知识学习小记
- 知识小记(C#)
- c++primer学习小记
- C++Primer学习小记
- object-c 学习小记
- C++bitset学习小记
- css 学习中小记
- C语言学习中整理的知识
- IOS 开发学习二 C语言知识 字符串处理
- C++Primer学习小记1
- 《C和指针》学习小记
- 【C/C++】枚举enum学习小记
- 【转】【C/C++】枚举enum学习小记
- JavaScript中字符串转Json方法小记
- 从学习C语言中获得的知识
- c语言学习中遇到的几个关键知识
- Directx9.0 学习教程4 - 坐标系以及变换知识小记
- C++primer 第四章学习小记
- 我们都是被上帝咬过的苹果
- Linux下安装maven
- POJ3096-Surprising Strings【STL--map】
- VS2015 C#6.0 中的那些新特性
- MFC基本对话框的属性——— 增添最小化 最大化按钮
- C中字符串知识学习小记
- uva 311 Packets(贪心)
- 第四讲项目2—英尺到米的转换
- 表单中Readonly和Disabled的区别
- uva 10020 Minimal coverage
- 【Eclipse】【FAQ】Eclipse工程原来使用好好的,突然内存溢出异常关闭了,基本的jdk类就识别不了——删除jre重新加到编译路径中解决
- 即将毕业.
- JavaScript快速入门(六)——DOM
- java线程池_ExecutorService