C语言第13讲 指针与字符串(字符数组)课件精品.pptVIP

  • 9
  • 0
  • 约6.91千字
  • 约 18页
  • 2017-02-02 发布于江苏
  • 举报

C语言第13讲 指针与字符串(字符数组)课件精品.ppt

6.2.3 指针与字符串(字符数组) 例1: 输出字符串 ▲字符指针(变量)与字符数组的区别 例: 统计字符串中的各元音字母的个数(P182 例6.15) 2. 字符串指针做函数参数(见P183 表6-2) 6.2.4 指针数组 2、用指针数组处理多字符串 2、指针数组访问二维数组 6.3 指针与函数 举例:求a、b的最大值。 6.3.2 返回指针的函数 例: 输入一个1~7之间的整数,输出对应的星期名。 6.3.3 main函数的参数 举例:编程显示命令行输入的参数。 **举例:在字符串中查找特定的字符。 ★ 课堂作业: ★ 思考题: 编程题: * 合肥工业大学 WANGJINLING ① C语言用字符数组存放字符串。 ▲字符数组:元素个数确定,一般用下标控制循环。 ▲字符串:有效字符个数由‘\0’确定,用结束符‘\0’控制循环。 ② 字符数组名和字符串的值都是地址(字符串的首地址 ) 1、字符串的访问方法: ▲ 直接引用字符串: char *chp,ch[ ]=”abcde”; /*定义字符指针和字符数组*/ chp=ch; /*指针指向字符数组*/ putchar( *(chp+2)); /*通过指针引用数组元素*/ printf(“%s,%s”,ch+1,chp+2); ▲ 引用字符数组: char *chp; /*说明字符指针*/ chp=“Hello!”; /*指针指向字符串*/ puts(chp); /*通过指针引用字符串*/ 字符指针可直接指向字符串:char *chp=“Hello!”; 输出 ?? 无名一维字符数组 ’\0’ #includestdio.h void main() { char s[ ]=“computer”, *ps=s ; while(*ps!=‘\0’) { putchar(*ps); ps++; } } main( ) { char str[80], *p, ch; int i=0; p=str; gets(p); ch=getchar(); for( ; *p!=‘\0’;p++) if(*p!=ch) str[i++]=*p; str[i]=‘\0’; printf(“The new string is:%s\n”,str); } 例2:在输入的字符串中删除指定的字符 2000H p str[0] str[1] str[2] \0 2000H 2001H 2002H 2003H 2004H 2005H 2006H ch 0 i 运行程序: abcdef c · · · 2000H str a b d e f \0 a b c d e f c str printf(“%s”,ps); 或: puts(ps) The new string is: abdef 字符指针与字符数组:两者均可存储和运算字符串。 主要区别: ① 存储格式不同: 字符指针变量中存放的是字符串的首地址(2字节);而字符数组中存放的是整个字符串(一个数组元素存放一个字符)。 ② 性质不同:字符数组名是地址常量,不能改变(指向首字符); 字符指针是地址变量,可以改变(指向不同的字符)。 ③ 赋值方式不同: 字符指针 char *ps=“Hello”; char *ps; ps=“Hello”; 字符数组 char st[ ]=“Hello”; × char st[80]; st=“Hello” 或:st[ ]=“Hello” 用循环逐个赋值或用strcpy()函数赋值 #includestdio.h void main(void) { char str[80],*p; int a=0,e=0,i=0,o=0,u=0; gets(str); for(p=str;*p!=\0;p++) { switch(*p) { case a: case A: a++; break; case e: case E: e++; break; case i: case I:

文档评论(0)

1亿VIP精品文档

相关文档