说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

字符数组-C语言教程

HTML文档下载 WORD文档下载 PDF文档下载
在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。用来存放字符量的数组称为字符数组。
7.3 字符数组
用来存放字符量的数组称为字符数组。
7.3.1 字符数组的定义
形式与前面介绍的数值数组相同。
例如:
    char c[10];
由于字符型和整型通用,也可以定义为int c[10]但这时每个数组元素占2个字节的内存单元。
字符数组也可以是二维或多维数组。
例如:
    char c[5][10];
即为二维字符数组。
7.3.2 字符数组的初始化
字符数组也允许在定义时作初始化赋值。
例如:
    char c[10]={‘c’, ‘  ’, ‘p’, ‘r’, ‘o’, ‘g’, ‘r’, ‘a’,’m’};
赋值后各元素的值为:
    数组C    c[0]的值为‘c’
c[1]的值为‘ ’
c[2]的值为‘p’ 
c[3]的值为‘r’
c[4]的值为‘0’
c[5]的值为‘g’
c[6]的值为‘r’
c[7]的值为‘a’
c[8]的值为‘m’
其中c[9]未赋值,由的值为‘p’系统自动赋予0值。
当对全体元素赋初值时也可以省去长度说明。
例如:
    char c[]={`c`,` `,`p`,`r`,`o`,`g`,`r`,`a`,`m`};
这时C数组的长度自动定为9。
7.3.3 字符数组的引用
【例7.8】
main(){  int i,j;  char a[][5]={{'B','A','S','I','C',},{'d','B','A','S','E'}};  for(i=0;i<=1;i++)    {      for(j=0;j<=4;j++)          printf("%c",a[i][j]);      printf("\n");    }}
本例的二维字符数组由于在初始化时全部元素都赋以初值,因此一维下标的长度可以不加以说明。
7.3.4 字符串和字符串结束标志
在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。前面介绍字符串常量时,已说明字符串总是以'\0'作为串的结束符。因此当把一个字符串存入一个数组时,也把结束符'\0'存入数组,并以此作为该字符串是否结束的标志。有了'\0'标志后,就不必再用字符数组的长度来判断字符串的长度了。
C语言允许用字符串的方式对数组作初始化赋值。
例如:
    char c[]={'c', ' ','p','r','o','g','r','a','m'};
可写为:
        char c[]={"C program"};
    或去掉{}写为:
        char c[]="C program";
用字符串方式赋值比用字符逐个赋值要多占一个字节, 用于存放字符串结束标志'\0'。上面的数组c在内存中的实际存放情况为:

C

 

p

r

o

g

r

a

m

\0

    ‘\0'是由C编译系统自动加上的。由于采用了‘\0'标志,所以在用字符串赋初值时一般无须指定数组的长度, 而由系统自行处理。
7.3.5 字符数组的输入输出
在采用字符串方式后,字符数组的输入输出将变得简单方便。
除了上述用字符串赋初值的办法外,还可用printf函数和scanf函数一次性输出输入一个字符数组中的字符串,而不必使用循环语句逐个地输入输出每个字符。
【例7.9】
main(){  char c[]="BASIC\ndBASE";  printf("%s\n",c);}
注意在本例的printf函数中,使用的格式字符串为“%s”,表示输出的是一个字符串。而在输出表列中给出数组名则可。不能写为:
printf("%s",c[]);
【例7.10】
main(){  char st[15];  printf("input string:\n");  scanf("%s",st);  printf("%s\n",st);}
本例中由于定义数组长度为15,因此输入的字符串长度必须小于15,以留出一个字节用于存放字符串结束标志`\0`。应该说明的是,对一个字符数组,如果不作初始化赋值,则必须说明数组长度。还应该特别注意的是,当用scanf函数输入字符串时,字符串中不能含有空格,否则将以空格作为串的结束符。
例如当输入的字符串中含有空格时,运行情况为:
    input string:
        this is a book
输出为:
this
从输出结果可以看出空格以后的字符都未能输出。为了避免这种情况,可多设几个字符数组分段存放含空格的串。
程序可改写如下:
【例7.11】
main(){  char st1[6],st2[6],st3[6],st4[6];  printf("input string:\n");  scanf("%s%s%s%s",st1,st2,st3,st4);  printf("%s %s %s %s\n",st1,st2,st3,st4);}
    本程序分别设了四个数组, 输入的一行字符的空格分段分别装入四个数组。然后分别输出这四个数组中的字符串。
在前面介绍过,scanf的各输入项必须以地址方式出现,如 &a,&b等。但在前例中却是以数组名方式出现的,这是为什么呢?
这是由于在C语言中规定,数组名就代表了该数组的首地址。整个数组是以首地址开头的一块连续的内存单元。
如有字符数组char c[10],在内存可表示如图。

C[0]

C[1]

C[2]

C[3]

C[4]

C[5]

C[6]

C[7]

C[8]

C[9]

设数组c的首地址为2000,也就是说c[0]单元地址为2000。则数组名c就代表这个首地址。因此在c前面不能再加地址运算符&。如写作scanf("%s",&c);则是错误的。 在执行函数printf("%s",c) 时,按数组名c找到首地址,然后逐个输出数组中各个字符直到遇到字符串终止标志'\0'为止。
7.3.6 字符串处理函数
C语言提供了丰富的字符串处理函数, 大致可分为字符串的输入、输出、合并、修改、比较、转换、复制、搜索几类。 使用这些函数可大大减轻编程的负担。用于输入输出的字符串函数,在使用前应包含头文件"stdio.h",使用其它字符串函数则应包含头文件"string.h"。
下面介绍几个最常用的字符串函数。
1. 字符串输出函数 puts
   格式:  puts (字符数组名)
   功能:把字符数组中的字符串输出到显示器。 即在屏幕上显示该字符串。
【例7.12】
#include"stdio.h"main(){  char c[]="BASIC\ndBASE";  puts(c);}
    从程序中可以看出puts函数中可以使用转义字符,因此输出结果成为两行。puts函数完全可以由printf函数取代。当需要按一定格式输出时,通常使用printf函数。
2. 字符串输入函数gets
   格式:  gets  (字符数组名)
   功能:从标准输入设备键盘上输入一个字符串。
 本函数得到一个函数值,即为该字符数组的首地址。
【例7.13】
#include"stdio.h"main(){  char st[15];  printf("input string:\n");  gets(st);  puts(st);}
    可以看出当输入的字符串中含有空格时,输出仍为全部字符串。说明gets函数并不以空格作为字符串输入结束的标志,而只以回车作为输入结束。这是与scanf函数不同的。
3. 字符串连接函数strcat
   格式:  strcat (字符数组名1,字符数组名2)
   功能:把字符数组2中的字符串连接到字符数组1 中字符串的后面,并删去字符串1后的串标志“\0”。本函数返回值是字符数组1的首地址。
【例7.14】
#include"string.h"main(){  static char st1[30]="My name is ";  int st2[10];  printf("input your name:\n");  gets(st2);  strcat(st1,st2);  puts(st1);}
    本程序把初始化赋值的字符数组与动态赋值的字符串连接起来。要注意的是,字符数组1应定义足够的长度,否则不能全部装入被连接的字符串。
4. 字符串拷贝函数strcpy
   格式:  strcpy (字符数组名1,字符数组名2)
   功能:把字符数组2中的字符串拷贝到字符数组1中。串结束标志“\0”也一同拷贝。字符数名2,也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。
【例7.15】
#include"string.h"main(){  char st1[15],st2[]="C Language";  strcpy(st1,st2);  puts(st1);printf("\n");}
本函数要求字符数组1应有足够的长度,否则不能全部装入所拷
贝的字符串。
5. 字符串比较函数strcmp
   格式:  strcmp(字符数组名1,字符数组名2)
   功能:按照ASCII码顺序比较两个数组中的字符串,并由函数返回值返回比较结果。
          字符串1=字符串2,返回值=0;
  字符串2〉字符串2,返回值〉0;
  字符串1〈字符串2,返回值〈0。
本函数也可用于比较两个字符串常量,或比较数组和字符串常量。
【例7.16】
#include"string.h"main(){ int k;  static char st1[15],st2[]="C Language";  printf("input a string:\n");  gets(st1);  k=strcmp(st1,st2);  if(k==0) printf("st1=st2\n");  if(k>0) printf("st1>st2\n");  if(k<0) printf("st1<st2\n");}
本程序中把输入的字符串和数组st2中的串比较,比较结果返回到k中,根据k值再输出结果提示串。当输入为dbase时,由ASCII 码可知“dBASE”大于“C Language”故k〉0,输出结果“st1>st2”。
6. 测字符串长度函数strlen
   格式:  strlen(字符数组名)
   功能:测字符串的实际长度(不含字符串结束标志‘\0’) 并作为函数返回值。
【例7.17】
#include"string.h"main(){ int k;  static char st[]="C language";  k=strlen(st);  printf("The lenth of the string is %d\n",k);}
7.4 程序举例
【例7.18】把一个整数按大小顺序插入已排好序的数组中。
为了把一个数按大小插入已排好序的数组中,应首先确定排序是从大到小还是从小到大进行的。设排序是从大到小进序的,则可把欲插入的数与数组中各数逐个比较,当找到第一个比插入数小的元素i时,该元素之前即为插入位置。然后从数组最后一个元素开始到该元素为止,逐个后移一个单元。最后把插入数赋予元素i即可。如果被插入数比所有的元素值都小则插入最后位置。
main(){  int i,j,p,q,s,n,a[11]={127,3,6,28,54,68,87,105,162,18};  for(i=0;i<10;i++)      { p=i;q=a[i];	for(j=i+1;j<10;j++)	if(q<a[j]) {p=j;q=a[j];}	if(p!=i)	{	  s=a[i];	  a[i]=a[p];	  a[p]=s;	}	printf("%d ",a[i]);      }    printf("\ninput number:\n");    scanf("%d",&n);    for(i=0;i<10;i++)      if(n>a[i])      {for(s=9;s>=i;s--) a[s+1]=a[s];      break;}      a[i]=n;    for(i=0;i<=10;i++)      printf("%d ",a[i]);    printf("\n");}
本程序首先对数组a中的10个数从大到小排序并输出排序结果。然后输入要插入的整数n。再用一个for语句把n和数组元素逐个比较,如果发现有n>a[i]时,则由一个内循环把i以下各元素值顺次后移一个单元。后移应从后向前进行(从a[9]开始到a[i]为止)。 后移结束跳出外循环。插入点为i,把n赋予a[i]即可。 如所有的元素均大于被插入数,则并未进行过后移工作。此时i=10,结果是把n赋于a[10]。最后一个循环输出插入数后的数组各元素值。
    程序运行时,输入数47。从结果中可以看出47已插入到54和 28之间。
【例7.19】在二维数组a中选出各行最大的元素组成一个一维数组b。
a=( 3  16 87  65
  4  32 11 108 
10 25 12  37)
b=(87 108 37)
本题的编程思路是,在数组A的每一行中寻找最大的元素,找到之后把该值赋予数组B相应的元素即可。程序如下:
main(){    int a[][4]={3,16,87,65,4,32,11,108,10,25,12,27};    int b[3],i,j,l;    for(i=0;i<=2;i++)      { l=a[i][0];	for(j=1;j<=3;j++)	if(a[i][j]>l) l=a[i][j];	b[i]=l;}    printf("\narray a:\n");    for(i=0;i<=2;i++)      { for(j=0;j<=3;j++)	printf("%5d",a[i][j]);	printf("\n");}      printf("\narray b:\n");    for(i=0;i<=2;i++)      printf("%5d",b[i]);    printf("\n");}
程序中第一个for语句中又嵌套了一个for语句组成了双重循环。外循环控制逐行处理,并把每行的第0列元素赋予l。进入内循环后,把l与后面各列元素比较,并把比l大者赋予l。内循环结束时l 即为该行最大的元素,然后把l值赋予b[i]。等外循环全部完成时,数组b中已装入了a各行中的最大值。后面的两个 for语句分别输出数组a和数组b。
【例7.20】输入五个国家的名称按字母顺序排列输出。
    本题编程思路如下:五个国家名应由一个二维字符数组来处理。然而C语言规定可以把一个二维数组当成多个一维数组处理。 因此本题又可以按五个一维数组处理, 而每一个一维数组就是一个国家名字符串。用字符串比较函数比较各一维数组的大小,并排序,输出结果即可。
编程如下:
main(){    char st[20],cs[5][20];    int i,j,p;    printf("input country's name:\n");    for(i=0;i<5;i++)      gets(cs[i]);    printf("\n");    for(i=0;i<5;i++)      { p=i;strcpy(st,cs[i]);	for(j=i+1;j<5;j++)      if(strcmp(cs[j],st)<0) {p=j;strcpy(st,cs[j]);}    if(p!=i)      {	strcpy(st,cs[i]);	strcpy(cs[i],cs[p]);	strcpy(cs[p],st);      }    puts(cs[i]);}printf("\n");}
本程序的第一个for语句中,用gets函数输入五个国家名字符串。上面说过C语言允许把一个二维数组按多个一维数组处理,本程序说明cs[5][20]为二维字符数组,可分为五个一维数组cs[0],cs[1],cs[2],cs[3],cs[4]。因此在gets函数中使用cs[i]是合法的。 在第二个for语句中又嵌套了一个for语句组成双重循环。这个双重循环完成按字母顺序排序的工作。在外层循环中把字符数组cs[i]中的国名字符串拷贝到数组st中,并把下标i赋予P。进入内层循环后,把st与cs[i]以后的各字符串作比较,若有比st小者则把该字符串拷贝到st中,并把其下标赋予p。内循环完成后如p不等于i说明有比cs[i]更小的字符串出现,因此交换cs[i]和st的内容。至此已确定了数组cs的第i号元素的排序值。然后输出该字符串。在外循环全部完成之后即完成全部排序和输出。
7.5 本章小结
1.数组是程序设计中最常用的数据结构。数组可分为数值数组(整数组,实数组),字符数组以及后面将要介绍的指针数组,结构数组等。
2.数组可以是一维的,二维的或多维的。
3.数组类型说明由类型说明符、数组名、数组长度(数组元素个数)三部分组成。数组元素又称为下标变量。 数组的类型是指下标变量取值的类型。
4.对数组的赋值可以用数组初始化赋值,输入函数动态赋值和赋值语句赋值三种方法实现。 对数值数组不能用赋值语句整体赋值、输入或输出,而必须用循环语句逐个对数组元素进行操作。
玩转Google I/O 2015:Android M、IoT、Glass 2.0、VR、ATAP ARC中Retain Cycle揭秘 失控与逆转!企业移动化2.0时代下如何求变? 玩转物联网之MQTT 专访都灵创客教育奚炎:被忽视的Maker教育 13岁iOS开发者:Swift开发Sprite Kit游戏实践 专访豌豆荚「自动装」开发团队:无需Root即可批量点击「下一步」 iOS项目的持续集成与管理 《近匠》谛听科技,探索智慧家庭的智能网关 【简讯】Python 3.5.0b1发布 《算法的乐趣》作者王晓华访谈:多看、多做、多想是秘诀 专访李祎:Java在Testin的技术应用 React首部经典图书推荐:全程经典实例,360度剖析React.js 再做一个Android!Google发布第二代VR眼镜Cardboard Go语言开发常见陷阱,你遇到过几个? 奏响年度最强音 第七届中国云计算大会日程全公布(表) 【CTO讲堂】请在还年轻的时候,尽量多踩些坑 以细分使用场景为突破点 探究墨迹天气的体验创新 熟练成就创造——MathWorks全球副总裁Richard Rovner、产品市场经理赵志宏专访 Objective-C编码规范:26个方面解决iOS开发问题 豌豆机器小组发布最新WRTnode2R,支持华为Liteos、QQ物联与AllJoyn [新书推荐]Node.js项目实践:构建可扩展的Web应用 【简讯】Perl 5.22.0 发布,大幅改进代码! 【征文】特别策划——群雄逐鹿共话新型数据库 针对DCloud侵权质疑,APICloud发布声明 《近匠》小鱼天气,中国风与细粒度空气质量检测 Xcode 7 beta发布,Swift 2.0带来哪些新变化? 【有奖征集】MDCC 2015演讲议题征集全面启动 Swift语言那些鲜为人知的特性 《开源者说》08期:聊聊Java那些事儿 专访唐成:从小工到专家,PostgreSQL的修炼之道 关于文本框的问题 在菜单项中加入小图标 求救: 这是什么语言!!!! "::="??? 100分请教,如何将DBGrid中某字段为空的记录全部删除, 和过滤掉重复的记录? 繁体版的软件选什么字体? 关于虚拟主机的问题 DELPHI7带了一个挺不错的工具:ModalMake 6.2 如何得到文件控件中的值? SOS!!!在线等待,立即给分 关于密匙的问题? 关于Kylix unix系统有中间件吗? 架設smtp的問題??? FastNet组件 怎样在sql语句中进行数据转换啊 在线等 ,,,怎样获得汉字的编旁 在程序中用函数设置session的时效、存放路径 如何在ms-dos下降低cpu的运行速度?(汇编,C高手请进) 求解决链表问题 请教:如何在linux嵌入系统中编写外设驱动程序.谢谢 Micrsoft JDK nmake生成的EXE文件反编译问题!!! 多态问题 专业调查:军训练什么,学到什么!!????? 使用IS for Delphi 4制作安装盘.安装时时出现401号错误(字符串变量不够长) 介绍几本VC入门的好书 大家谈谈,数据库应用程序如何设计及使用类! Oracle的登录问题! 请问如何在VC中取得传入的参数? 现在的浏览器还支持不支持applet啊?高手救我!--------怎么写一个applet兼容更多的浏览器? 请问那里有这种工具??近来看看!! 请capboy等写过filter的各位前辈指点 利用DW制作一张确定最佳分辨率为800*600或者1024*768的页面, 急 求助: 怎样获得系统当前可用的字体? 如何打印FormView? 如果你是VC高手,对COM有深入了解,欢迎! 我今天看了我英语过级的公布成绩,我得了一个天险数字60。5分,请问。。。。。? 谁有linux下的mod_webapp.so DW UltraDev里rs.source="select * from stu where banci=request.QueryString("banci")这样是不是不行? Microsoft JDK nmake生成的EXE文件反编译问题!!! 各位大虾:请问谁能告诉我哪里能找到win xp home edition plus???如果能让我找到,送1000分 请问如何将PaintBox.Canvas的当前内容保存至内存, Linux下c语言程序该怎样运行? 请问:vb.net中oracle数据库能否支持blob格式? .ceb文件如何打开? 什么地方能够找到《Exploring Requiremengs:Quality Before Design》这本书? 关于制作一个classwizard的设计思路,欢迎大家讨论 weblogic server console: java.lang.NullpointerException 如何得到本局域网上所有主机的ip? 请问: 如果在网上可以通过网页上传某些文件到服务器空间上,并显示一些关于上传文件的信息~ 一段检测光软驱的程序,大家帮忙除Bug! 为何会死机? 这句话看不懂,谁能帮我分析一下~ 草履虫从细胞膜到核膜,一共有几层膜分别是哪几层 下例物质在一定条件下能跟甲烷发生取代反应的是氧气,氯化钠,溴水,氯气 给父母解释为什么叛逆的一封信 英语作文 目前我国有哪些法律法规给未成年人以特殊的保护? 请帮忙分析句子句法结构.特别是句子的"nothing...less than"nothing gets people talking than child rearing is anything less than a completely fulfilling,life-enriching experience. 古代中原指的是什么地方 在循环水系统中钝化后的碳钢管道在正式运行前还需要进行预膜吗 可降解塑料餐盒化学成分 中国古代的九州是指现在的哪些地方? 如下就是案例.热电厂循环水处理之预膜处理步骤详情咨询北京邦驰世纪水处理科技有限公司 可降解塑料餐盒怎么加工 水处理成套设备是什么 古代的"中原"到底是指哪里?在当时中原以外的地域都是不被中原政权承认属于"中国"的吗? 循环水预膜时钙离子为什么要大于50PPM? 一道物理电磁感应自招题 求教 北极燕鸥阅读题答案 草履虫是通过什么与环境进行物质交换? 一道电磁感应物理题 古代各国都在中原地区吗 能体现汉字谐音特点的古诗有什么 向鲜牛奶中掺入三聚氰胺,能增加牛奶的重量么往牛奶里添这个东西有什么用?有感于牛奶事件 中国古代西域是指哪些地区?是在何时正式并入中国版图的? 4HCl+O2=2Cl2+2H2O,在CuO/CuCl2,400℃的条件.该反应的热化学方程式 . 以牛、牛奶、三聚氰胺为话题的作文(急),以牛、牛奶、三聚氰胺为话题的作文700字,材料也可以(要整理好的)最好能信息发给我, 一根圆柱形水管,内直径为20厘米,水在管内的流动速度为每秒40厘米,每秒流过的水是()立方厘米 可逆反应2Cl2(g)+2H2O(g) 4HCl(g)+O2(g); ΔH 右图表示生长素浓度对植物 A点对应的生长素浓度对根\芽\茎都有促进作用 为什么错?芽\茎在生长素浓度较低的时候是什么状态,是促进还是抑制,还是不生长? 一根圆柱形水管,直径为40厘米,水流速度为每秒3米.这根水管每分钟可流过多少升水 把九立方米的沙垫在一个长5米,宽4米得沙坑里,可以垫多厚? 生长素浓度高为什么会杀死植物?为什么?原理? 汉子与中国心“最最能体现汉字中文的这些特别的首推中国的古典诗词“在文中起到什么作用 一个沙坑长5米,宽4米.往里放入4立方米的沙子可以垫多厚 物理题1个(关于电磁感应的)如图所示,正方形线框abcd 边长为L,线圈水平放置,固 定在磁感应强度为B,方向竖直的匀强磁场中,其中ab边是电阻为R的均匀电阻丝,其余三边电阻不计.现有一段长度 变形虫和草履虫的细胞膜基本组成成分相同吗? 一个沙坑长5米,宽4米,往里放入4立方米的沙子,可以垫多厚? 问一条关于电磁感应的物理题在倾角θ的斜面上,放置一段通有电流强度I,长度L,质量m的导体棒a(电流方向向里),如图,棒与斜面间动摩擦因数u 一个长方体游泳池,长50米,宽25米,深4米.要在游泳池每个面上抹上一层水泥,如果每方米用水泥16千克,一共需要水泥多少千克?(求算式) 有黄沙4立方米,把它垫在长5米,宽4米的沙坑里,可以垫后多少米? 下列气体中,有剧毒的是?一氧化碳 二氧化碳 氧气 氮气中华武术博大精深,中国的武术家更是数不胜数,下列候选人中,是谁具有武术家身份而投身于电影拍射,被世界所公认为一代宗师?A 独体字的结构 厅的墙我想做成镜面的玻璃幕墙,请问费用要多少啊?我在沈阳,我家厅一侧的墙体我想做成镜面的玻璃幕墙,深灰兰色那种吧,面积是2.5米*4.2米,中间带一个正常的门,推开的,或者平开的门都行,大 一道物理电磁感应题目水平面内固定一U形光滑金属导轨,轨道宽d=2m,导轨的左端接有R=0.3Ω的电阻,导轨上放一阻值为R0=0.1Ω,m=0.1kg的导体棒ab,其余电阻不计,导体棒ab用水平轻线通过定滑轮连接处 小孩子早熟怎么办? 换个手机玻璃多少钱? 一道物理电磁感应的题目...将一个正方形线框放在均匀变化的磁场中,线框平面垂直磁场,线框中产生的感应电流为I1,现在将这个线框换成同样阻值且边长为原来2倍的正方形线框,仍放在原来均 最能体现汉字中文特点的首推中国的古典诗词,一个中国孩子在很小时候就能背诵的古典诗词:冬天下雪时吟“_________________,___________________”思念家乡时吟“_________________,___________________” 玻璃险多少钱 夏天----植物的世界(阅读答案) 一个长方体的游泳池长50m,宽20m,深2m,要在四周和池底抹一层水泥,每平方米需要3千克水泥,需要多少水泥算式过程写出来 中国有多少个简体中文汉字? 体现汉字特点的古诗有那些 在汉字与中国古典诗词中,作者对汉字是一种什么样的情感 CO和H2的混合气体中含有少量CO2和水蒸气,可按下列实验步骤,证明CO和H2的存在:(1)将混合气体首先通过① ,目的是② ;(2)将由(1)得到气体,继续通过① ,实验中观察到 请分析这句话,看不懂Writing this book was anything but simple, an irony that has not been lost on me. 草履虫的表膜是细胞膜么 人类的利益不应该建立在动物的生命上.我总是觉得人类不应该吃动物.但却没人认同.你们觉得呢? 请帮我分析这句话!我看不懂!The goal should be to recapture in the universities and research labs much of the excitement that existed at top-rated departments in the past.请分析这句话的语法!我看不懂! 草履虫的细胞膜又称什么,其功能是什么 动物也是生命,为什么要吃动物的肉?如果有一天 老虎是地球的主人 那它也会吃人类吗?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘