记下这个,激励自己。
做课程设计的题目。要求自定义一个字符串比较函数。
如果相等就返回0,不相等就返回第一个不同字符的ASCII值。
于是我写出了如下的蠢代码。
/*
*课程设计8_1
*/
#include "stdio.h"
#include "string.h"
#include <iostream>;
main()
{
int result;
char p[30],q[30];
printf("请输入两个字符串(30个字符以内,以空格键分隔):");
scanf("%s%s",p,q);
int toCompareString(char* str1,char* str2);
result = toCompareString(p,q);
printf("result:%5d\n",result);
system("pause");
return;
}
/*自定义字符串比较函数
*参数说明:str1,str2为两个字符指针
*/
int toCompareString(char* str1,char* str2)
{
//取较短的字符串长度
int shorterLength;
if(strlen(str1)>strlen(str2))
shorterLength = strlen(str2);
else
shorterLength = strlen(str1);
//循环比较各个字符
for (int counter=0;counter<shorterLength;counter++)
{
if (str1[counter]!=str2[counter])
{
return str1[counter] - str2[counter];
}
}
//返回多出的那个字符的ASCII值
if (strlen(str1)>strlen(str2)) return str1[shorterLength];
if (strlen(str2)>strlen(str1)) return str2[shorterLength];
return 0;
}
然后我们班一个女同学写出了如下代码(虽然最后是我改的)
int fun(char *a,char *b)
{
while ((*a!='\0')&&(*b!='\0')&&(*a==*b))
{a++;b++;}
return (*a-*b);
}
#include <stdio.h>
void main ()
{
char p[30],q[30];
scanf("%s%s",p,q);
printf("%d",fun(p,q));
}
她以前是职高的,学过一年C语言,也虽然不得不承认这与我不熟悉C语言有关。但是她所用的这些东西我都是知道的。
希望以后不会再写这么蠢的东西出来。