时去除标点
浏览次数:17次 2008年04月23日 互联网 字号: 大 中 小
分享到:QQ空间新浪微博腾讯微博人人网豆瓣网开心网更多0
题目4:函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中; 请编制函数StrOL( ), 其函数的功能是: 以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排,同时去除标点符号,之后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT6.DAT中。
例如: 原文: You He Me I am a student. 结果: Me He You student a am I
原始数据文件存放的格式是: 每行的宽度均小于80个字符, 含标点符号和空格。 -----------------
类型:字符串(单词)的倒置和删除。 答案:
void StrOL(void) /*标准答案*/ {int I,j,k,strl,l;char c; for(I=0;I {while (((xx[l][I]>=\"a\"&&xx[l][I]<=\"z\")||(xx[l][I]>=\"A\"&&xx[l][I]<=\"z\"))&&I>=0) {for(j=k;j>=0;j--) pp[j+1]=pp[j]; pp[0]=xx[l][I]; k++;I--; } strcat(ch,pp);strcpy(pp, \"\"\"\");k=1; if(I==-1)break; while((xx[l][I]<\"A\"||xx[l][I]>\"z\")&&I>=0) {for(j=k;j>=0;j--) pp[j+1]=pp[j]; pp[0]=xx[l][I]; k++; I--;} strcat(ch,pp); strcpy(pp,\"\"\"\"); k=0; if(I==-1)break;} strcpy(xx[l],ch); }} 或者: void StrOL(void) { int i,j,k,m,n,ll; char yy[80]; for(i=0; i < maxline; i++) { ll=strlen(xx[i]); k=n=0; for(j=ll-1; j>=0; j--) { if(isalpha(xx[i][j])) k++; else { for(m=1; m<=k; m++) yy[n++]=xx[i][j+m]; k=0; } if(xx[i][j]==\" \") yy[n++]=\" \"; } for(m=1; m<=k; m++) yy[n++]=xx[i][j+m]; yy[n]=0; strcpy(xx[i],yy); } } 题目3:函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编制函数STROR(),其函数功能是:以行为单位把字符串中的所有小写字母O左边的字符串内容移到该串的右边存放,然后并把小写字母O删除,余下的字符串内容移到已处理字符串的左边存放.最后把已处理的字符串仍按行重新存入字符串数组XX中,最后调用函数WRITEDAT()把结果XX输出到文件OUT.DAT中. 例如:原文:You can create an index on any field. you have the correct record. 结果: n any field.You can create an index rd.yu have the crrect rec 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格. ------------------- 类型:字符串(单词)的倒置和删除。 首先需要理解题意,我觉得理解题意是正确做出此题的关键。 首先建立一个模型,有字符串aobocodo,那么根据题意可得其转换步骤为 aobocodo→bocodoa→codab→dabc 同理,再分析abcodefogh,解题步骤为abcodefogh→defoghabc→ghabcdef 这样我们很容易得到一个规律,题目中原字符串的最后处理效果为: 将该字符串最后一个小写字母'o'左右两侧的内容分交换,并消除所有的小写字母'o'即可。 参: void StrOR(void) { int i, j,s, k,righto; char buf[80]; for (i=0; i memset(buf,0,80);//初始化字符串数组buf if(xx[i][j]=='o') { righto=j; for(s=righto+1;s else continue;//不满足条件,即,改行没有„o‟,进行下一次循环 } }首先明确函数的功能是: 以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中。 木易版参: void StrOL(void) { int i,j,k,s,m,strl; char str[80]; for(i=0;i s=k=0; for(j=strl-1;j>=0;j--) /*从当前字符串尾部开始向前倒序循环,实现题意要求的倒排*/ { if(isalpha(xx[i][j])) k++; /*如果当前字符是字母a~z或A~Z,则k加一*/ else { for(m=1;m<=k;m++) /*否则将长度为k的单词顺序存入到字符串数组str中,s值加1*/ str[s++]=xx[i][j+m]; k=0; /*将k值清0,以方便下一个单词的长度计数*/ } if(!isalpha(xx[i][j])) str[s++]=' '; /*如果当前字符不是字母a~z或A~Z,则以空格代之存入到字符串数组str中,s值加一*/ } for(m=1;m<=k;m++) /*此时的k值为当前字符串中第一个单词的长度,但在上一个for循环中没能存入到字符串数组str中,所以在这里将其存入到str中*/ str[s++]=xx[i][j+m]; str[s]='\\0'; /*在当前行尾加0以标记此行的结束*/ strcpy(xx[i],str); /*将倒排好的当前字符串重新存回到当前行xx中*/ } } 清楚变量: 程序代码中: 变量s:用于扫描每行字符串, 变量k:用于扫描每个单词。 字符串变量str[80]:用于存储每行处理完的字符。每行全部处理完后,即该行单词全部逆序排好后就将此字符串暂存变量赋值给原字符串全局变量xx[50][80]。 步骤: ㈠确定最外层循环:for(i=0;i ①向前扫描过程中是字母的继续前行;当遇到非字母字符,则停住,这样就确定了一个单词,将前面刚确定的这个单词存入字符串变量中! ②存好前面这个单词后将接下来的这个非字母字符变为空格,然后继续向前扫描。 ①②一直在每行字符串的循环中反复执行,直至逆序扫描至该行行首! 注意事项: ①开始先将字符串暂存变量初始化为空。代码是memset(str,0,80); 接着每行字符串扫描完处理完都要先将字符串暂存变量初始化为空后,再接着扫描处理下一行字符串!故代 码memset(str,0,80); 要么放在两个循环for(i=0;i ②与①类似,每扫描并确定了一个单词,都要将变量k重新初始化赋值为0。(另外须注意:在程序处理字符串前,最最开始时s=0;k=0;) ③每行扫描的最后一个单词,即每行原字符串的第一个单词都未及时存入字符串暂存变量中!由于算法中,从后向前扫描字符串,只有当碰到了非字母字符时,才确定了一个单词并将刚刚确定的前面一个单词立即存入到字符串暂存变量中。因此当每行扫描完最后一个单词(即每行原字符串的第一个单词)扫描到了行首,循环条件j>=0自动停止扫描,该循环结束,由于存入单词功能的代码在该循环循环体中,故原字符串的第一个单词都未及时存入,所以要记得将最后一个扫描的单词存入到字符串暂存变量中,然后再进行下一行的扫描! ④每行字符串处理完要记得在字符串暂存变量尾部添加'\\0'标记行结束!代码是str[s]='\\0'; ⑤每行处理完的字符串已经存入到字符串暂存变量str[]中,最后要记得将其复制到原字符串全局变量xx[][]中。然后将str[]初始化为空,继续下一行的扫描处理,周而复始直至文章全部处理完最终结束。 南开100题第三题 首先明确函数的功能是: StrOR( )函数的功能是: 首先明确函数的功能是: StrOR( )函数的功能是: 以行为单位依次把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。 正确理解题意并分析出算法: 理解题意并分析算法,这个思考过程最为重要,我认为这是攻克本题的关键! 首先抽象一个模型: 假设要处理的字符串模型是:aobocod 那么根据题意很容易知道处理的步骤分别是:aobocod→bocoda→codab→dabc 同理再分析字符串abcodefogh,最后的结果是:ghabcdef 正确理解题意并分析出算法: 理解题意并分析算法,这个思考过程最为重要,我认为这是攻克本题的关键! 首先抽象一个模型: 假设要处理的字符串模型是:aobocod 那么根据题意很容易知道处理的步骤分别是:aobocod→bocoda→codab→dabc 同理再分析字符串abcodefogh,最后的结果是:ghabcdef 这样我们很容易就发现了一个规律: 题目中原字符串的最后处理效果原来就是:将字符串中最后一个小写字母o左右两侧的内容互换,并消除所有小写字母o即可。 想通了这个规律,相应的算法也就确定了,那么这道题也就不难了! (就这个算法让我苦恼了好几天一直也不懂,终于在一次下晚自习回宿舍的路上通过上面这种模型抽象的方法想通了!我觉得我的智商并不算高,我也不是学计算机专业的,我用这种方法想通了,大家也应该没问题了吧。) 木易版参: void StrOR(void) {int i,righto,j,s,k; char tem[80]; for(i=0;i memset(tem,0,80); /*初始化字符串tem*/ if(xx[i][j]=='o') /*如果当前字符为'o',进入以下语句*/ {righto=j; /*则将此字符中位置j的值赋给righto*/ for(s=righto+1;s for(s=0;s strcpy(xx[i],tem); /*将当前已处理的字符重新存入当前行xx*/ } else continue; } } 参二: void StrOR(void) {int i,righto,j,k; char tem[80]; for(i=0;i memset(tem,0,80); /*上面这两行初始化语句要么放在两循环中间,要么放在内循环循环体最前面。 */ for(j=strlen(xx[i])-1;j>=0;j--) /*倒序循环*/ if(xx[i][j]=='o') {righto=j;break;} /*寻找最右边的小写字母o的位置,将其下标存储到righto中*/ for(j=righto+1;j 木易版参: void StrOR(void) {int i,righto,j,s,k; char tem[80]; for(i=0;i memset(tem,0,80); /*初始化字符串tem*/ if(xx[i][j]=='o') /*如果当前字符为'o',进入以下语句*/ {righto=j; /*则将此字符中位置j的值赋给righto*/ for(s=righto+1;s for(s=0;s strcpy(xx[i],tem); /*将当前已处理的字符重新存入当前行xx*/ } else continue; } } 参二: void StrOR(void) {int i,righto,j,k; char tem[80]; for(i=0;i for(j=strlen(xx[i])-1;j>=0;j--) /*倒序循环*/ if(xx[i][j]=='o') {righto=j;break;} /*寻找最右边的小写字母o的位置,将其下标存储到righto中*/ for(j=righto+1;j (点击进入相关链接:《关于“南开100题第三题”的两种参的思考》) 清楚变量: 变量righto:用于存储字符串最右边(right)的一个小写字母o的位置(下标)。 字符串变量tem[80]:字符串暂存变量,在字符串处理过程中边处理边把处理好的字符串暂存到该字符数组中。每行全部处理完后,就将此字符串暂存变量赋值给原字符串全局变量xx[50][80]。 步骤: 与题目四类似也是先要确定两个大的循环架子: ㈠确定最外层循环:for(i=0;i ①从每行字符串串尾开始由后向前扫描,碰到小写字母o就停住,这样就确定了该字符串最右边的一个小写字母o的位置,并记录其下标将其存放在变量righto中。 ②接着将该行最右边的小写字母o的右边(后面)的字符串 按照从字母o至行末的顺序全部存入到字符串暂存变量tem[]中。对应循环代码是forj=righto+1;j 量中处理好的字符复制存入到原字符串数组中。这样该行字符串处理完毕。然后字符串暂存变量初始化清零继续参与下一行的处理,周而复始直至文章全部处理完最终结束。 注意事项: 初始化语句k=0;righto=0;memset(tem,0,80);要在每次即将开始处理一行新字符串前先执行, 所以该语句要么放在最外层两循环之间, 要么放在第二个循环的循环体的最前面。 总结方法: ①在南开100题里只要是读取一篇英文文章再对文章的字符串进行指定处理的题目。一般都是要涉及到一个二维数组用来存放字符串。在编制程序代码时也一般都要用到两个大的循环架子,即外循环控制各个行,内循环控制每行的各个字符的扫描!这点应该熟练到只要一见到这类题就应该作出的第一本能反映,上来就应该先写出这俩循环架子来!这也算是一个作题规律吧! ②南开100题的第三题和第四题也基本都是沿用这么一个框架:那就是先定义一个字符串暂存变量,然后在处理每行字符串的过程中,边处理边把该行已经处理好的字符存入到已定义的字符串暂存变量中,最后等该行全部处理完毕,字符串暂存变量中所存储的就是已经处理好的该行的字符串,然后再把它复制到原二维数组中即可。接着把字符串暂存变量初始化清零,再参与下一行的处理!这也算是一个规律吧! ③初始化语句的位置也是应该注意的,前面已经说到,就不再赘述。 关于“南开100题第三题”的两种参的思考 2006-09-02 16:10 答案中的涉及到的一点思考: 上面两种答案我经过上机验证都没有问题。 关于“木易版答案”和“参二”咋一看好像是一样的! 其实不然,里面蕴藏着很多思考! 我个人认为参二更容易理解一些! 但第一种木易版参流传更广泛一些! 先分别分析一下上面两个答案: 先说说“参二”: 答案二:先确定righto,确定完了righto就对该字符串righto左右两部分先后分别存储。 所以答案二的程序结构是: 一个大循环后for(i=0;i if(xx[i][j]=='o'){确定righto;存右边;存左边;}else continue; 主要让我迷茫的是这么一个选择结构语句放在了for(j=strlen(xx[i])-1;j>=0;j--)中! 那我就搞不懂了: 要是已经确定了righto后,因为这个选择结构语句是在循环for(j=strlen(xx[i])-1;j>=0;j--)中, 会不会程序接着再在已确定的righto的位置处继续向前扫描,然后在原字符串中遇到右数第二个小写字母o再把它的位置下标赋给righto呢? 这样的话righto就已经不是存放最右边的一个小写字母o的下标了! 接着执行岂不乱套! 困惑了半天,经过在群里网友的帮助,我终于明白我所担忧的事情是不会发生的! 因为: 注意strcpy(xx[i],tem); 语句!!!这句在if中。 也就是说当找到第一个小写字母o后,执行if里面的语句,当执行完后,把tem里的内容覆盖到了原数组中,那个时候原数组已经没有小写字母o了! 之所以没有小写字母o了,是因为当初在第一次执行if语句里的程序时代码 if(xx[i][s]!='o') tem[k++]=xx[i][s];已经把原字符串中的小写字母o全部过滤掉了! 由此看来: if(xx[i][j]=='o')这个选择条件只可能成立一次!那就是在第一次遇到最右边的那个小写字母o时! 尽管原字符串有多个小写字母o,尽管if(xx[i][j]=='o')在循环内部,但字符串由于strcpy(xx[i],tem); 的执行早已变化了!!! 到此我的顾虑就打消了! 看了上面那两种答案的人都应该经过以上思考我认为才算真正搞懂了! 出圈题是南开100题中最难的三道题之一! 我个人认为南开100题中有三道题的难度很大,分别是字符串处理问题,对应的是南开第三题和第四题!这两道题前面本人已经分析过了,另外一道难题就是下面我即将分析的南开第57题——出圈问题! 关于出圈问题网上也有不少讲解,这里我就不再赘述,我只是补充些网上没有涉及到的,读者可以参考补充阅读! 首先理解题意 设有n个人围坐一圈并按顺时针方向从1到n编号。 从第s个人开始进行1到m的报数, 报数到第m个人, 此人出圈, 再从他的下一个人重新开始1到m的报数,如此进行下去直到所有的人都出圈为止。 现要求按出圈次序,给出这n个人的顺序表p。 木易版答案: void Josegh(void) { int i,j,s1,w; s1=s; for(i=1; i<=n; i++) p[i-1]=i; for(i=n; i>=2; i--) { s1=(s1+m-1)%i; if(s1==0) s1=i; w=p[s1-1]; for(j=s1; j这里提出几个广泛流传的错误: 本人在学习此题过程中发现,不管是网上还是书店的一些参考书中,对此题的讲解都有一些错误!本人在这里提出几个广泛流传的错误,希望大家指正! ① 南开上机题或无忧上机题的题干错误! 原题干: 若第i个人报数后出圈,则将p[i]置于数组的倒数第i个位置上,而原来第i+1个至倒数第i个元素依次向前移动一个位置。 举个例子: 套用原题干: 若第10个人报数后出圈,则将p[10]置于数组的倒数第10个位置上,而原来第11个至倒数第10个元素依次向前移动一个位置。 上面这句话显然不对! 而实际上是: 原列队第10个人报数后出圈(即编号为10的人报数出圈),则将p[9]置于数组的倒数第1个位置上,而原来第11个至倒数第1个元素依次向前移动一个位置。 或这么表述: 第1个报数后出圈的人(因为编号为10的人是第1个报数出圈的),将p[9]置于数组的倒数第1个位置上,而原来第11个至倒数第1个元素依次向前移动一个位置。 错误分析: 编题的人没有搞清其实“出圈次序”“出圈人编号”“出圈人所对应的数组下标”是三个不同的概念! 如:第一个出圈的人,出圈次序是1,下标是p[9],编号是10。 而编题人简单地都用i表示了!显然不对! 这里我认为本句话应该改为: 第i个人报数出圈的人,将“此人的编号”置于数组的倒数第i个位置上。 ②市面上卖的谭浩强主编的《三级C语言上机指导》一书中(清华大学出版社2005年7月第1版封皮是红色的价格是22.00元)对此题的解释也有错误: 讲解中说:s1=(s1+m-1)%i的作用是找出报数后出圈人的下标。 本人认为编者也犯了类似的错误: 应该改为: s1=(s1+m-1)%i的作用是找出报数后出圈人的“编号”。 因为变量s1表示的不是出圈人的所对应的数组下标,而是其“编号”。 清楚变量: 变量i:表示没有出圈的人数。 变量s1:表示出圈人所对应的编号。编号s1=p[s1-1]。 变量w:暂存变量,用于暂时存放刚刚出圈人的编号。 数组p[]:存放出圈人编号的数组。程序结束后,该数组按出圈次序倒序存放出圈人的编号。 思路步骤: ①建立数组,应注意:p[下标]=编号 ;下标=编号-1;编号s1=p[s1-1]。 对应代码是:for(i=1; i<=n; i++) p[i-1]=i; ②倒序循环for(i=n; i>=2; i--),找出出圈人的“编号”s1。 对应的算法是通过求余得到的!s1=(s1+m-1)%i; ③将刚出圈人的编号先寄存在暂存变量中。 ④将刚出圈的人之后至原队列最后一个未出圈的人依次在数组中前移一位。对应的代码是:for(j=s1; j⑤将刚出圈人的编号放置在最后一个未出圈的人的后面,即p[i-1]的位置上。 注意事项: ①此题有两种变形,差别在于出圈人编号的存放顺序。考生应注意考题中是哪种变形! 形式一: 若第i个人报数后出圈,则将此人编号置于数组的倒数第i个位置上,而原来第i+1个至倒数第i个元素依次向前移动一个位置;即第1个出圈的编号存放在p[n-1]中,第2个出圈的编号存放在p[n-2]中,直至第n个出圈的编号存放在p[0]中。 对应的void WriteDat(void) 函数中的循环语句是for(i=N-1; i>=0; i--) 形式二: 第1个出圈的编号存放在p[0]中,第2个出圈的编号存放在p[1]中,直至第n个出圈的编号存放在p[n-1]中。 对应的void WriteDat(void) 函数中的循环语句是for(i = 0 ; i <= N - 1 ; i++) 上面答案是形式一的答案。 若遇到形式二,考生须在原有答案的基础上再增加两个循环以使循序颠倒过来! for(i=0,j=n-1;i 体验新版博客 分享到搜狐微博 计算机三级上机南开100题 难题解析 前言 对于南开100题中难度较大的几道题,题的答案程序都比较长,死记硬背不好背下来, 关键是要在心里明确并牢记要完成题目指定的功能所需完成的步骤! 心中清楚了需要完成的步骤,在考场上你只要根据这些步骤编制一定的代码实现就可以了! 所以关键是要知道\"要做什么\知道了\"要做什么\"后至于\"怎么做\只要你的C语言基础过关就可以办到! 再换句话说就是: 要想写出代码先要清楚完成指定功能的\"算法\"! 心中明确了\"算法\那么你只需按部就班转化为C语言程序代码即可! 另外声明:我下面的讲解有的很废话,语言很累赘,一是由于个人水平所限,二是由于我想尽量把题目解析得浅显易懂面面俱到!所以尽管语言很烦冗,但个人认为还是很浅显易懂的!这些文字只是本人第一次准备三级上机的心得总结,由于本人水平有限,如有错误之处欢迎交流,批评指正! 本人觉得南开100题中最难的也就三四道题.其中就包括字符串处理问题. 这种题型涉及到了南开100题的第三,四题. 下面先解析南开100题的第四题. 南开100题第四题 首先明确函数的功能是: 以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排.最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中. 木易版参: void StrOL(void) { int i,j,k,s,m,strl; char str[80]; for(i=0;i=0;j--) /*从当前字符串尾部开始向前倒序循环,实现题意要求的倒排*/ { if(isalpha(xx[i][j])) k++; /*如果当前字符是字母a~z或A~Z,则k加一*/ else { for(m=1;m<=k;m++) /*否则将长度为k的单词顺序存入到字符串数组str中,s值加1*/ str[s++]=xx[i][j+m]; k=0; /*将k值清0,以方便下一个单词的长度计数*/ } if(!isalpha(xx[i][j])) str[s++]=' '; /*如果当前字符不是字母a~z或A~Z,则以空格代之存入到字符串数组str中,s值加一*/ } for(m=1;m<=k;m++) /*此时的k值为当前字符串中第一个单词的长度,但在上一个for循环中没能存入到字符串数组str中,所以在这里将其存入到str中*/ str[s++]=xx[i][j+m]; str[s]='\\0'; /*在当前行尾加0以标记此行的结束*/ strcpy(xx[i],str); /*将倒排好的当前字符串重新存回到当前行xx中*/ } } 清楚变量: 程序代码中: 变量s:用于扫描每行字符串, 变量k:用于扫描每个单词. 字符串变量str[80]:用于存储每行处理完的字符.每行全部处理完后,即该行单词全部逆序排好后就将此字符串暂存变量赋值给原字符串全局变量xx[50][80]. 步骤: 一确定最外层循环:for(i=0;i=0;j--) 从每行尾部开始逆序扫描每行字符串. 向前扫描过程中是字母的继续前行;当遇到非字母字符,则停住,这样就确定了一个单词,将前面刚确定的这个单词存入字符串变量中! ② 存好前面这个单词后将接下来的这个非字母字符变为空格,然后继续向前扫描. ①②一直在每行字符串的循环中反复执行,直至逆序扫描至该行行首! 注意事项: ①开始先将字符串暂存变量初始化为空.代码是memset(str,0,80); 接着每行字符串扫描完处理完都要先将字符串暂存变量初始化为空后,再接着扫描处理下一行字符串!故代码memset(str,0,80); 要么放在两个循环for(i=0;i=0;j--) 之间要么也可以放在for(j=strl-1;j>=0;j--)循环体的最前面! ②与①类似,每扫描并确定了一个单词,都要将变量k重新初始化赋值为0.(另外须注意:在程序处理字符串前,最最开始时s=0;k=0;) ③每行扫描的最后一个单词,即每行原字符串的第一个单词都未及时存入字符串暂存变量中!由于算法中,从后向前扫描字符串,只有当碰到了非字母字符时,才确定了一个单词并将刚刚确定的前面一个单词立即存入到字符串暂存变量中.因此当每行扫描完最后一个单词(即每行原字符串的第一个单词)扫描到了行首,循环条件j>=0自动停止扫描,该循环结束,由于存入单词功能的代码在该循环循环体中,故原字符串的第一个单词都未及时存入,所以要记得将最后一个扫描的单词存入到字符串暂存变量中,然后再进行下一行的扫描! ④每行字符串处理完要记得在字符串暂存变量尾部添加'\\0'标记行结束!代码是str[s]='\\0'; ⑤每行处理完的字符串已经存入到字符串暂存变量str[]中,最后要记得将其复制到原字符串全局变量xx[][]中.然后将str[]初始化为空,继续下一行的扫描处理,周而复始直至文章全部处理完最终结束. 注:该题的主要算法是先让两字符指针都指向串尾,然后使一指针(p1)往前移动,当 出现不是字母时则表示在p1+1与p2之间是一个单词,并将该单词存入一变量(t1),最后 将t1连接到新串中(t);接着再往前找第二个单词,依次类推直到字符串头。由此可知 新串就是原串中各单词的倒排。 void Str0L(void) { int i,k; char *p1,*p2; char t[80],t1[80]; for(i=0;i strcpy(xx[i],t); } } 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务