⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tc7.dat

📁 这是一个包含多个语言的指令集
💻 DAT
📖 第 1 页 / 共 2 页
字号:

     for(i=0;i<NUM_std;i++)

        { printf("学生%d\t",i+1);

           for(j=0;j<NUM_course+1;j++)

                 printf("%6.1f\t",score[i][j]);

           printf("\n");

        }

    /*输出1条短划线*/

    for(j=0;j<8*(NUM_course+2);j++)

         printf("-");

    printf("\n课程平均");

    /*输出每门课程的平均成绩*/

    for(j=0;j<NUM_course;j++)

       printf("%6.1f\t",score[NUM_std][j]);

    printf("\n");

    getch();

   } 

6.3   字符数组与字符串

6.3.1 字符数组的逐个字符操作 

6.3.2  字符数组的整体操作

6.3.3  常用的字符串处理函数

6.3.1  字符数组的逐个字符操作

[案例6.5]从键盘输入一个字符串,回车键结束,并将字符串在屏幕上输出. 

/*案例代码文件名:AL6_5.C*/

main()

    {int i;

      static char str[80];

      clrscr();

      for(i=0;i<80;i++)

           { str[i]=getch();       /*逐次给数组元素str[i]赋值,但不回显在屏幕上*/

              printf("*");                       /*以星号代替输入字符的个数*/

              if(str[i]=='\x0d') break;/*若输入回车则终止循环*/

           }

       i=0;

       while(str[i]!='\x0d')

            printf("%c",str[i++]);      /*逐次输出字符数组的各个元素*/

       printf("\n");

       getch();           /*程序暂停*/

}                            

1.字符数组的定义

1维字符数组,用于存储和处理1个字符串,其定义格式与1维数值数组一样.

2维字符数组,用于同时存储和处理多个字符串,其定义格式与2维数值数组一样.

2.字符数组的初始化

字符数组的初始化,可以通过为每个数组元素指定初值字符来实现.

     3.字符数组的引用

    字符数组的逐个字符引用,与引用数值数组元素类似.

     (1)字符数组的输入

     除了可以通过初始化使字符数组各元素得到初值外,也可以使用getchar()或scanf()函数输入字符.

    例如:

    char str[10];

……

for(i=0; i<10; i++)

     { scanf("%c", &str[i]);

        fflush(stdin);   /*清除键盘输入缓冲区*/

     }

……

    (2)字符数组的输出

    字符数组的输出,可以用putchar()或printf()函数.

    例如:

     char  str[10]="c language";

……

for(i=0; i<10; i++)  printf("%c", str[i]);

printf("\n");

……

注意:逐个字符输入、输出时,要指出元素的下标,而且使用“%c”格式符.另外,从键盘上输入字符时,无需输入字符的定界符──单引号;输出时,系统也不输出字符的定界符.

6.3.2  字符数组的整体操作

[案例6.6]  字符数组的整体输入与输出. 

/*案例代码文件名:AL6_6.C*/

/*功能:将2维字符数组进行初始化,并在屏幕上输出*/

main()

{ int i;

  char name[5][9]={"张三山", "李四季", "王五魁", "刘六顺", "赵七巧"};

  for(i=0;i<5;i++)

  printf("\n%s\t",name[i]);       /*name[i]代表该行数组元素的首地址*/

  getch();

}                                                               [程序演示]

1.字符串及其结束标志

 所谓字符串,是指若干有效字符的序列.C语言中的字符串,可以包括字母、数字、专用字符、转义字符等.

C语言规定:以‘\0’作为字符串结束标志(‘\0’代表ASCII码为0的字符,表示一个“空操作”,只起一个标志作用).因此可以对字符数组采用另一种方式进行操作了──字符数组的整体操作.

注意:由于系统在存储字符串常量时,会在串尾自动加上1个结束标志,所以无需人为地再加1个.

另外,由于结束标志也要在字符数组中占用一个元素的存储空间,因此在说明字符数组长度时,至少为字符串所需长度加1.

2.字符数组的整体初始化

字符串设置了结束标志以后,对字符数组的初始化,就可以用字符串常量来初始化字符数组.

3.字符数组的整体引用

(1)字符串的输入

除了可以通过初始化使字符数组各元素得到初值外,也可以使用scanf()函数输入字符串.

(2)字符串的输出

printf()函数,不仅可以逐个输出字符数组元素,还可以整体输出存放在字符数组中的字符串.

6.3.3  常用的字符串处理函数

字符串标准函数的原型在头文件string.h中.

1.输入字符串──gets()函数

(1)调用方式:gets(字符数组)

(2)函数功能:从标准输入设备(stdin)──键盘上,读取1个字符串(可以包含空格),并将其存储到字符数组中去.

(3)使用说明

 1)gets()读取的字符串,其长度没有限制,编程者要保证字符数组有足够大的空间,存放输入的字符串.

 2)该函数输入的字符串中允许包含空格,而scanf()函数不允许.

2.输出字符串──puts()函数

(1)调用方式:puts(字符数组)

(2)函数功能:把字符数组中所存放的字符串,输出到标准输出设备中去,并用‘\n’取代字符串的结束标志‘\0’.所以用puts()函数输出字符串时,不要求另加换行符.

( 3)使用说明

1)字符串中允许包含转义字符,输出时产生一个控制操作.

2)该函数一次只能输出一个字符串,而printf()函数也能用来输出字符串,且一次能输出多个.

3.字符串比较──strcmp()函数

(1)调用方式:strcmp(字符串1 ,字符串2)

其中“字符串”可以是串常量,也可以是1维字符数组.

(2)函数功能:比较两个字符串的大小.

如果:字符串1=字符串2,函数返回值等于0;

            字符串1<字符串2,函数返回值负整数;

            字符串1>字符串2,函数返回值正整数.

(3)使用说明

1)如果一个字符串是另一个字符串从头开始的子串,则母串为大.

2)不能使用关系运算符“==”来比较两个字符串,只能用strcmp() 函数来处理.

[案例6.7]  gets函数和strcmp函数的应用. 

/*案例代码文件名:AL6_7.C*/

/*功能:简单密码检测程序*/

#include  "stdio.h"

main()

   {char pass_str[80];                     /*定义字符数组passstr*/

     int i=0;

      /*检验密码*/

     while(1)

         {clrscr();

           printf("请输入密码\n");

           gets(pass_str);                    /*输入密码*/

     if(strcmp(pass_str,“password”)!=0)       /*口令错*/

          printf("口令错误,按任意键继续");

    else

          break;                 /*输入正确的密码,中止循环*/

    getch();

    i++;

    if(i==3) exit(0);   /*输入三次错误的密码,退出程序*/    

  }

  /*输入正确密码所进入的程序段*/

}

4.拷贝字符串──strcpy()函数

(1)调用方式:strcpy(字符数组, 字符串)

其中“字符串”可以是串常量,也可以是字符数组.

(2)函数功能:将“字符串”完整地复制到“字符数组”中,字符数组中原有内容被覆盖.

(3)使用说明

1)字符数组必须定义得足够大,以便容纳复制过来的字符串.复制时,连同结束标志'\0'一起复制.

2)不能用赋值运算符“=”将一个字符串直接赋值给一个字符数组,只能用strcpy()函数来处理.

5.连接字符串──strcat()函数

(1)调用方式:strcat(字符数组, 字符串)

(2)函数功能:把“字符串”连接到“字符数组”中的字符串尾端,并存储于“字符数组”中.“字符数组”中原来的结束标志,被“字符串”的第一个字符覆盖,而“字符串”在操作中未被修改.

(3)使用说明

  1)由于没有边界检查,编程者要注意保证“字符数组”定义得足够大,以便容纳连接后的目标字符串;否则,会因长度不够而产生问题.

  2)连接前两个字符串都有结束标志'\0',连接后“字符数组”中存储的字符串的结束标志'\0'被舍弃,只在目标串的最后保留一个'\0'.

6.求字符串长度──strlen()函数(len是length的缩写)

(1)调用方式:strlen(字符串)

(2)函数功能:求字符串(常量或字符数组)的实际长度(不包含结束标志).

7.将字符串中大写字母转换成小写──strlwr()函数

(1)调用方式:strlwr(字符串)

(2)函数功能:将字符串中的大写字母转换成小写,其它字符(包括小写字母和非字母字符)不转换.

8.将字符串中小写字母转换成大写──strupr()函数

(1)调用方式:strupr(字符串)

(2)函数功能:将字符串中小写字母转换成大写,其它字符(包括大写字母和非字母字符)不转换.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -