C语言基础自学总结之六:字符串.docx_第1页
C语言基础自学总结之六:字符串.docx_第2页
C语言基础自学总结之六:字符串.docx_第3页
C语言基础自学总结之六:字符串.docx_第4页
C语言基础自学总结之六:字符串.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

c语言基础自学之六:字符串介绍:1.字符串就是一串字符,每一个字符串,都在结尾处有个看不到的字符,尾o也就是0,2.h是字符串占两个字节,有个尾o,h实际上是一个数字,在内存中占4个字节例子:#include int main(void) printf(%ldn%ldn,sizeof(h),sizeof(h); return 0;一、声明一个字符串1.声明字符串1 当我们写“hello”时,就会告诉编译器,在只读数据段储存6个字符。2 “hello”表达式的值,表示字符串第一个字符的地址。例子1:#includeint main(void) char *p=hello world!;/声明一个字符串用char,char是声明字符型变量或函数(整型,整数 1个字节),由上面1/2就明白这里“hello world”表达式的值,其实就是首字母h的地址,为一个字符,所以可以用char 指针指向。 printf(%sn%ldn,p,sizeof(hello world!);/打印字符串用s, return 0;2.只读数据段例子1:可用指针指向#include void func(void) char *p=hello; write(1,p,10);/强制打印10个字节, write: 写到一文件中,用 法: write(fd, void *buf, count);参数:fd:要进行写操作的文件描述词。buf:需要输出的缓冲区,count:最大输出字节计数 return;int main(void) char *q=world!; func(); return 0;例子2,只读数据段不可修改#include int main(void) char *p=hello world!; /p0=H/这样是错误的。不可修改 p是h的 地址,p0就是h。p0是一个空间 return 0;例子3:可初始化#include int main(void) char a64=hello world!;/除了可以用指针指向,也可以用一个字符串来初始化数组。这里是初始化了,a的前13个字节。 a0=H;/a0可以修改,因为a0不是只读数据段的内容,而是栈里的内容,将只读数据段的hello world复制到a里面,所以可以修改 printf(%sn,a); return 0;二、相关函数1. atoi 字符串转整型函数结构是:atoi(const char *str);意思是:将字符串转换成整数值,也就是将字符串str转换成整型值然后获取转换后的结果。返回值:返回转换后的整型值头文件是:include 例子1:#include #include /atoi函数的头文件int main(void) int a1=atoi(123);/传的是字符串的地址 int a2=atoi(-123);/碰到非法字符就会停下来,也就是碰到不是数字的字符就会停下来除非是负号,但也仅限于负号为第一个字符的时候, int a3=atoi(123u123);/碰到“u”就会停下来。 printf(%d %d %dn,a1,a2,a3);/将字符串转换成数字 return 0;2. strcmp 字符串比较函数结构是:int strcmp (char *str1,char * str2);意思是:比较两个字符串的大小,也就是把字符串str1和字符串str2从首字符开始逐字符的进行比较,直到某个字符不相同或比较到最后一个字符为止,字符的比较为ASIC码的比较返回值:若字符串str1大于字符串str2返回结果大于零,若字符串str1小于字符串str2返回结果小于零,若字符串str1等于字符串str2返回结果等于零头文件是:include例子1:#include #include int main(void) char *p=abc;/都是char 类型的。 char a=bcd; printf(%dn,strcmp(p,a); return 0;3. strcpy 字符串拷贝函数结构是:char * strcpy (char *dest,char * src);意思是:实现字符串的拷贝工作,也就是把字符串src中的内容拷贝到字符串dest中,使两个字符串的内容相同。返回值是:指向字符串dest的指针头文件是:include 例子1:#include #include int main(void) char *p=hello world!;/传参,传的是地址,指针。 char buf64=; char *ret=strcpy(buf, p);/返回的是buf的地址,返回值是指针。将p拷贝到buf, printf(%sn,buf); return 0;4. strcat 字符串连接函数结构是:char *strcat (char *dest,char *src);意思是:将两个字符串连接合并成一个字符串,也就是把字符串src连接到字符串dest后面,连接后的结果放在字符串dest中返回值是:指向字符串dest的指针头文件是:include 例子1:#include #include int main(void) char buf64=hello;/buf空间必须足够,足够容纳拼接之后的字符串。 char *p=world; strcat(buf, p); printf(%sn,buf);/拼接的时候前面字符串的尾0去掉,保留后面字符串的尾0; return 0; 5. strstr 字符串匹配函数结构是:char *strstr(char *str1, char *str2);意思是:在字符串中查找另一个字符串首次出现的位置,也就是在字符串str1中查找第一次出现字符串str2的位置返回值是:返回第一次匹配字符串的指针头文件是:include 例子1:#include #include int main(void) char *p=welcome to school; char *q=to; char *ret=strstr(p,q);/返回值是指针,char 类型 if (ret!=NULL) printf(%sn,ret);/打印出,to 第一次出现的位置包括以后的内容,也就是从to开始打印直到尾0结束,如果是两次出现,找到的还是第一次出现的位置。 return 0;6. strtok 字符串分隔函数结构是:char *strstr(char *str1, char *str2)意思是:在字符串中查找单词,这个单词始有第二个字符串中定义的分隔符分开,也就是在字符串str1中查找由字符串str2定义的分隔符,以分隔符为界,分隔出来的分隔符前面的所有字符组成一个单词,分离出第一个单词后将第一个参数置为空,可以继续分隔第二个单词。返回值是:返回分隔出的单词的指针头文件是:#include例子1:#include #include int main(void) char buf=I am a so bad man.;/只可分割可变的字符串,不能分割不可变字符串,如:char *p=I am a so bad man. char *ret=strtok(buf, );/第二个参数是要分割的条件也就是分割符,这里是一空格为分割符 printf(%sn,ret);/返回值指针,内容是分割符前面的字符串, ret=strtok(NULL, );/如果要继续分割,第一个参数置为空。 printf(%sn,ret); return 0;例子2:完

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论