A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© brenthe 中级黑马   /  2016-5-12 22:41  /  855 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

字符数组的逐个字符引用,与引用数值数组元素类似。
1)字符数组的输入
    除了可以通过初始化使字符数组各元素得到初值外,也可以使用getchar()scanf()函数输入字符。
    例如:
    char str[10]
…… for(i=0; i<10; i++)
    { scanf(\"%c\", &str)
        fflush(stdin); /*清除键盘输入缓冲区*/
    }
2)字符数组的输出
    字符数组的输出,可以用putchar()printf()函数。
    例如:
    char  str[10]=\"c language\";
……
for(i=0; i<10; i++)  printf(\"%c\", str)
printf(\"\\n\");
…… 注意:逐个字符输入、输出时,要指出元素的下标,而且使用“%c”格式符。另外,从键盘上输入字符时,无需输入字符的定界符──单引号;输出时,系统也不输出字符的定界符。
字符数组的整体操作
[案例]  字符数组的整体输入与输出。
/*功能:将2维字符数组进行初始化,并在屏幕上输出*/
main()
{ int i;
  char name[5][9]={"张三山", "李四季","王五魁", "刘六顺", "赵七巧"};
  for(i=0;i<5;i++)
  printf("\\n%s\\t",name);      /*name代表该行数组元素的首地址*/
}  
1.字符串及其结束标志
所谓字符串,是指若干有效字符的序列。C语言中的字符串,可以包括字母、数字、专用字符、转义字符等。
C语言规定:以‘\0’作为字符串结束标志(‘\0’代表ASCII码为0的字符,表示一个空操作,只起一个标志作用)。因此可以对字符数组采用另一种方式进行操作了──字符数组的整体操作。
注意:由于系统在存储字符串常量时,会在串尾自动加上1个结束标志,所以无需人为地再加1个。
另外,由于结束标志也要在字符数组中占用一个元素的存储空间,因此在说明字符数组长度时,至少为字符串所需长度加1
2.字符数组的整体初始化
字符串设置了结束标志以后,对字符数组的初始化,就可以用字符串常量来初始化字符数组。
3.字符数组的整体引用
1)字符串的输入
除了可以通过初始化使字符数组各元素得到初值外,也可以使用scanf()函数输入字符串。
2)字符串的输出
printf()函数,不仅可以逐个输出字符数组元素,还可以整体输出存放在字符数组中的字符串。
四、常用的字符串处理函数
字符串标准函数的原型在头文件string.h中。
1.输入字符串──gets()函数
1)调用方式:gets(字符数组)
2)函数功能:从标准输入设备(stdin)──键盘上,读取1个字符串(可以包含空格),并将其存储到字符数组中去。
3)使用说明
1gets()读取的字符串,其长度没有限制,编程者要保证字符数组有足够大的空间,存放输入的字符串。
2)该函数输入的字符串中允许包含空格,而scanf()函数不允许。
2.输出字符串──puts()函数
1)调用方式:puts(字符数组)
2)函数功能:把字符数组中所存放的字符串,输出到标准输出设备中去,并用‘\n’取代字符串的结束标志‘\0’。所以用puts()函数输出字符串时,不要求另加换行符。
3)使用说明
1)字符串中允许包含转义字符,输出时产生一个控制操作。
2)该函数一次只能输出一个字符串,而printf()函数也能用来输出字符串,且一次能输出多个。
3.字符串比较──strcmp()函数
1)调用方式:int strcmp(字符串1 ,字符串2)
其中字符串可以是串常量,也可以是1维字符数组。
2)函数功能:比较两个字符串的大小。
如果:字符串1=字符串2,函数返回值等于0
            字符串1<字符串2,函数返回值负整数;
            字符串1>字符串2,函数返回值正整数。
3)使用说明
1)如果一个字符串是另一个字符串从头开始的子串,则母串为大。
2)不能使用关系运算符==来比较两个字符串,只能用strcmp() 函数来处理。
[案例]  gets函数和strcmp函数的应用。
/*功能:简单密码检测程序*/
#include  "stdio.h"
main()
  {char pass_str[80];                   /*定义字符数组passstr*/
    int i=0;
      /*检验密码*/
    while(1)
        {
          printf("请输入密码\n");     /*输入密码*/
          gets(pass_str);   
if(strcmp(pass_str,“password”)!=0)  /*口令错*/
          printf(\"口令错误,按任意键继续\");
    else
          break;               /*输入正确的密码,中止循环*/
    getch();
    i++;
    if(i==3) exit(0); /*输入三次错误的密码,退出程序*/   
  }
  /*输入正确密码所进入的程序段*/
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马