资源描述:
《计算机二级c语言 字符串》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第十章字符串1.存放字符串(1)用一维字符数组存放字符串①C语言对字符串的约定“abcd”存放:借助一维字符型数组存放占空间:4+1实际长度:4②C语言中字符串常量的约定1010.0‘a’‘’‘77’‘xaa’“”“a”“sdfs”‘ ’自动加#definePI3.14159#defienN6③C语言中字符串常量给出的是地址值字符串常量实际可理解为一个一维字符型数组。但这个一维字符型数组没名字,C编译系统读取到这一串存储单元的首地址。字符串实际被隐含的处理为一个以’ ’结尾的无名一维字符型数组。举例:chars[10],*p;
2、“abcd”s=”abcd”;s[0]=’a’;s[1]=’b’;s[2]=’c’;s[3]=’d’;s[4]=’ ’p=”abcd”;首地址④一维字符数组和字符串的区别及其联系区别:字符数组:chara[5];5任意的字符字符串:“abcd”无名 联系:字符型数组的最后一位位置存放’ ’,则它可理解为字符串常量。字符串为字符数组的特例。(2)用赋初值的方式将字符串写入一维字符数组中①数组赋初值的方式“abcd”4+1chara[4]={‘a’,’b’,’c’,’d’};chara[5]={‘a’,’b’,’c’,’d’};char
3、a[5]={‘a’,’b’,’c’,’d’,’ ’};chara[10]={‘a’,’b’,’c’,’d’};chara[10]={‘a’,’b’,’c’,’d’,’ ’};chara[]={‘a’,’b’,’c’,’d’};4chara[]={‘a’,’b’,’c’,’d’,’ ’};5②直接将字符串常量给一维字符数组“abcd”4+1chara[4]=“abcd”;非法chara[5]=”abcd”;chara[10]=”abcd”;chara[]=”abcd”;常用总结:“abcd”4+1chara[]={‘a’,’b’,’c
4、’,’d’,’ ’};chara[]=”abcd”;char*p=”abcd”;(3)执行过程中将字符串写入一维字符数组中①不可用赋值语句给字符数组整体赋一串字符“abcd”chara[5];a=”abcd”;非法chara[5]=”abcd”,b[5];b=a;非法②给字符数组逐个赋字符值,最后人为加入’ ’“abcd”“fssdfsfsajdklasdlkldfladf”chara[5];a[0]=’a’;a[1]=’b’;a[2]=’c’;a[3]=’d’;a[4]=’ ’;for(i=0;i<4;i++)scanf(“%c”
5、,&a[i]);abcda[i]=’ ’;人为输入2.字符串与指针(1)赋初值时使指针指向一个字符串char*p=”abcd”;首地址chara[]=”abcd”,*p=a;(2)赋值运算(可执行语句中)使指针指向一个字符串char*p;p=”abcd”;chara[]=”abcd”,*p;p=a;(3)字符数组存放字符串和指针指向字符串间的区别chara[]=”abcd”;内容char*p=”abcd”;首地址a数组中:内容:可变存储空间:固定p是一个指针变量:可指向其它地方3.字符串的输入和输出单个字符处理(%cgetchar….)
6、整串处理可用%s“abcd”#includemain(){chara[5];inti;for(i=0;i<4;i++)a[i]=getchar();a[i]=’ ’;abcda[0]=’a’‘b’‘c’‘d’‘ ’for(i=0;i<4;i++)putchar(a[i]);abcd(1)条件chara[]=”abcd”,*p=a;输入项:字符数组名,字符指针变量,字符数组元素的地址。存放的起始地址scanf(“%s”,a);p&a[1]输出项可为:字符串常量,字符数组名,已指向字符串的字符指针变量。输出的起始地址pr
7、intf(“%s”,”abcd”);ap(2)用%s整串输入和输出chara[10],*p=a;“abcd”scanf(“%s”,a);输入:abcd存放:a[0]‘a’‘b’‘c’‘d’‘ ’printf(“%s”,&a[1]);显示:abcdbcd使用%s时,空格和回车都将作为输入数据的间隔符而不能被读入。输入:abcd存放:a[0]‘a’‘b’‘ ’显示:ab(3)调用gets.puts函数gets函数用来从键盘上读入字符串(包括空格符)chara[10],*p=a;“abcd”gets(a);/*字符数组名,字符数组元素的地址
8、,字符指针变量(存放字符串的起始地址)*/输入:abcdabcd存放:a[0]‘a’‘b’‘c’‘d’‘ ’a[0]‘a’‘b’‘‘‘c’‘d’‘ ’puts(&a[1])