记下这个,激励自己。

做课程设计的题目。要求自定义一个字符串比较函数。

如果相等就返回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语言有关。但是她所用的这些东西我都是知道的。
希望以后不会再写这么蠢的东西出来。

posted on 2010-03-18 23:17  PSJay  阅读(167)  评论(0编辑  收藏  举报

导航