第17次(字符数组).pptVIP

  • 6
  • 0
  • 约3.95千字
  • 约 21页
  • 2017-07-17 发布于四川
  • 举报
Date: * IT Education Training 授课要点 字符数组的定义及初始化 字符串的定义及初始化 字符串处理函数 定义一个长度为10的整型数组,并初始化; 定义一个长度为10的单精度浮点型数组,并初始化; 定义一个长度为10的字符型数组,并初始化; 问题 字符数组的定义 char 字符数组名称[字符数组的长度] 特点:字符数组的每个存储单元只能存储1个字符。 如: char str[10]; 则: 数组str中可以存放10个字符。 假设存入的字符分别为:’a’、’b’、’c’、’d’、’e’、’f’、’g’、’h’、’i’、’j’ 则这组字符在内存的存储如下: a b c d e f g h i j str 字符数组的初始化 与一维数组的初始化类似,我们也可以在定义字符数组的同时就对它进行赋值,即初始化。 如: char s[5]={‘a’, ‘b’, ‘c’, ‘d’, ‘e’}; 则:数组元素在内存中的存储如下: a b c d e s 数组名s是常量,代表数组所占内存单元的首地址 字符串的定义及初始化 字符串 是用一对双引号括起来的字符序列。 在C中,没有专门的字符串变量,它只能通过字符数组来进行操作。 可用如下形式定义一个字符串 char str1[10]=“hello tom”; 字符串在内存中的表示 在C中,每个字符串的末尾 系统 都会自动加上一个特殊字符 ‘\0’ 。 ‘\0’是字符串结束标记。 如上面定义的字符串 char str[12]=“hello tom”; 在内存中的存储如下: h e l l o t o m \0 str 数组名str是常量,代表数组所占内存单元的首地址 字符串的输入与输出 1、用printf和scanf来进行输入输出 #include stdio.h main { myfunc(); } myfunc(){ char str[100];//定义一个较大的字符数组用来存储字符串 printf(Input a string:\n); scanf(%s, str); printf(the string is:\n); printf(%s, str); } 字符串的输入与输出 2、用gets和puts来进行输入输出 #include stdio.h main { myfunc(); } myfunc(){ char str[100];//定义一个较大的字符数组用来存储字符串 printf(Input a string:\n); gets(str); printf(the string is:\n); puts(str); } 讨论并总结 gets和scanf输入字符串时的差别。 puts和printf输出字符串的差别。 gets和scanf输入字符串时的差别 gets 能够接收到空格的字符串,到回车字符为止;scanf 接收到空格或回车为止。 如在执行时输入字符串“I want to learn C language well.” 注:对于字符串的处理常用字符串处理函数来操作。 puts和printf输出字符串的差别 puts在输出字符串时,遇到’\0’会自动终止输出,并且将’\0’转换为’\n’来输出。 而printf在输出字符串时,遇到’\0’只是终止输出,并不会将’\0’转换为’\n’来输出。 观察以下代码的运行结果: void main() { char s[]=hello!; puts(s);puts(s); printf(%s,s); printf(%s,s); } 字符串处理函数 1、输入函数: gets 语法形式: gets(str); /*str为已定义好的字符数组*/ 功能: 从键盘接收一个字符串,存储到数组str中,并在末尾自动添加上字符串结束标志’\0’。 2、输出函数: puts 语法形式: puts(str); /*str为已定义好的字符数组*/ 功能: 输出字符串str的内容,并将字符串结束标志’\0’转换成’\n’输出。 补充:sizeof()运算符 sizeof(类型名/变量名) 该函数用来得到该类型/该变量存储在内存中所占的字节数: 如:在VC环境中,sizeof(short)的值为2 sizeof(int )

文档评论(0)

1亿VIP精品文档

相关文档