C语言——比较两个字符串的长度
函数返回较长的字符串,若两个字符串长度相同,则返回第一个字符串
#include<stdio.h>
char *fun(char *s,char *t)
{
char *p=s,*q=t;
while(*p||*q)
{
if(*p==NULL&&*q!=NULL)
return t;
if(*p==NULL&&*q==NULL)
return s;
if(*p!=NULL&&*q==NULL)
return s;
p++;
q++;
}
}
int main()
{
char a[20],b[20];
void NONO();
printf("Input 1th String:");
gets(a);
printf("Input 2th String:");
gets(b);
printf("%s\n",fun(a,b));
NONO();
}
void NONO()
{
FILE *fp,*wf;
int i;
char a[20],b[20];
fp=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<10;i++)
{
fscanf(fp,"%s %s",a,b);
fprintf(wf,"%s\n",fun(a,b));
}
fclose(fp);
fclose(wf);
}
方法2:
char *fun(char *s,char *t)
{
int i;
char *p=s,*q=t;
int n=0,m=0;
//计算串s的长度n,其中p为临时指针
while(*p)
{
n++;
p++;
}
//计算串t的长度n,其中q为临时指针
while(*q)
{
m++;
q++;
}
//比较m和n的值,设置p指向较大的指针
if(n>=m)
p=s;
else
p=t;
return p;
}
【知识点】
1、fopen函数的原型:
FIFE *fopen(char *filename,char *mode);
若fopen不能打开,则返回一个空指针NULL(NULL在stdio.h中被定义为0)
2、fscanf、fprintf用于文本文件的读写
fscanf(文件指针,格式字符串,输入列表);
fprintf(文件指针,格式字符串,输入列表);
3、fclose函数原型
fclose(文件指针);
作用:先把缓冲区的数据输出到磁盘文件,然后释放文件指针变量。
fclose函数顺利执行关闭操作,返回值为0,否则返回EOF(-1);