600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 计算机二级-C语言-程序设计题-190118记录-通过数组和指针两种方式对字符串进行处理。...

计算机二级-C语言-程序设计题-190118记录-通过数组和指针两种方式对字符串进行处理。...

时间:2023-05-26 09:56:31

相关推荐

计算机二级-C语言-程序设计题-190118记录-通过数组和指针两种方式对字符串进行处理。...

//编写一个函数fun,比较两个字符串的长度,(不使用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符长度相同,则返回第一个字符串。

//重难点:通过数组处理和通过指针进行处理的不同。记住对指针进行处理以后,指针的位置已经发生变化,所以要进行指针的备份。注意返回值类型是否匹配,这里函数为指针函数所以返回的时候只返回指针名即可。数组备份的时候必须在初始化的时候进行复制。尽量使用数组。尽可能的简化代码。对文件的输入输出的不同。

1 #include <stdio.h> 2 char *fun ( char *s, char *t) 3 { 4 /* int i; 5char *q = s, *w = t;//定义指针备份的时候,要在初始化的时候进行赋值。 6for (i = 0; *q&&*w; i++)//这两个字符有一个到结尾,循环就结束。 7{ 8 q++; 9 w++;10}11if (*q == 0 && *w == 0)12 return s;13if (*q)//这种情况,*q还没有结束,而*w等于0,已经结束了。说明q要长一点。14 return s;15else16 return t;*/17 /* int i, j;//可以不需要从新申明计数器,使用循环的i和j就可以。18for (i = 0; s[i] != '\0'; i++);//这里空语句分号不能省略,代表循环什么都不做。19for (j = 0; t[j] != '\0'; j++);20if (i < j)//可以的话,可以省略大括号。21 return t;22else23 return s;*/24int i=0, j=0;25char *q=s, *w=t;//通过指针对数组做处理的时候,注意,对数组操作之后,指针的位置已经不是第一个字符了,所以必须进行备份,然后对新复制的指针,进行操作。26//q = s;//这样不可以。27//w = t;28while(*q!='\0')29{30 i = i + 1;31 q = q + 1;32}33//printf("%d",i);34while(*w!='\0')35{36 j = j + 1;37 w = w + 1;38}39//printf("%d",j);40if (i < j)41{42 return t;//这里返回指针名,不加*号,因为函数为指针函数。43}44else45{46 return s;47}48 49 }50 main( )51 { char a[20],b[20];52 void NONO ( );53 printf("Input 1th string:") ;54 gets( a);55 printf("Input 2th string:") ;56 gets( b);57 printf("%s\n",fun (a, b ));58 NONO ();59 }60 void NONO ( )61 {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */62 FILE *fp, *wf ;63 int i ;64 char a[20], b[20] ;65 fp = fopen("in.dat","r") ;66 wf = fopen("out.dat","w") ;67 for(i = 0 ; i < 10 ; i++) {68fscanf(fp, "%s %s", a, b) ;69fprintf(wf, "%s\n", fun(a, b)) ;70 }71 fclose(fp) ;72 fclose(wf) ;73 }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。