C语言编程?
编程提示:
(1)确定字符串比较函数的形式:int strcompare(const char * str1, const char * str), 当str1>str2时返回一个正整数,str1==str2时返回0,str1<str2时返回负整数;
(2)strcompare的思路:定义两个char *指针p和q,分别指向str1,str2,开始循环,循环条件表达式为*p == *q && *q != ‘\0’ && *p != ‘\0’,循环体为 p++; q++;。当循环条件不满足时,跳出循环,这代表:
1)p,q指向了两个字符串第一个不相同的字符;
2)str1字符串或者str2字符串到达了字符串结束字符’\0’,此时返回判断p和q指向的字符的大小即可 展开
2020-04-26
#include <stdio.h>
#include <string.h>
int main()
{
int i,result;
char s1[15],s2[10];
printf("please input string1:\n");
gets(s1);
printf("please input string2:\n");
gets(s2);
i=0;
while(s1[i]==s2[i]&&s1!='\0') i++;//当s1、s2相同字符时且s1!='\0'时进入循环
if(s1[i]=='\0'&&s2=='\0')//s1、s2所有字符比较完毕都相等
result = 0;
else
result =s1[i]-s2[i];//s1、s2某个字符不相等,输出结果
printf("The result of comparing two strings is %d\n",result);
return 0;
}
#include <stdio.h>
int strcompare(char *p1,char *p2)
{
int i;
for(i=0;p1[i]!='\0'&&p2[i]!='\0';i++)
if(p1[i]!=p2[i])//两个字符串长度相同时,其中某个字符不同
return (p1[i]-p2[i]);
if(p1[i]=='\0'&&p2[i]=='\0')//两个字符串长度相同时且所有字符相同
return 0;
else
return (p1[i]-p2[i]);//两个字符串长度不相等且某个字符不同
}
int main()
{
char s1[15],s2[10];
printf("please input string1:\n");
gets(s1);
printf("please input string2:\n");
gets(s2);
printf("The result of comparing two strings is %d\n",strcompare(s1,s2));
return 0;
}