#include<stdio.h>
int strcmp(char a[50],char b[50])
{
int i,j=0,t=0;
for(i=0;i<30;i++)
{
j=j+'a[i]';
t=t+'b[i]';
}
if(j<t)
return -1;
else if(j=t)
return 0;
else
return 1;
}
void main()
{
int str;
char str1[50],str2[50];
printf("input some words:\n");
scanf("%s",&str1);
printf("input some words again:\n");
scanf("%s",&str2);
str=strcmp(str1,str2);
printf("%d",str);
}
这是我写的程序,run不出来。此题是为了编程实现函数strcmp的功能
----------------解决方案--------------------------------------------------------
#include<stdio.h>
int strcmp(char a[50],char b[50])
{
int i,j=0,t=0;
for(i=0;i<30;i++)
{
j=j+a[i]; /*没有引号*/
t=t+b[i];
}
if(j<t)
return -1;
else if(j=t)
return 0;
else
return 1;
}
void main()
{
int str;
char str1[50],str2[50];
printf("input some words:\n");
scanf("%s",str1);
printf("input some words again:\n");
scanf("%s",str2);
str=strcmp(str1,str2);
printf("%d",str);
}
这是我写的程序,run不出来。此题是为了编程实现函数strcmp的功能
[此贴子已经被作者于2006-11-29 20:12:33编辑过]
----------------解决方案--------------------------------------------------------
而且还有一个问题,在
int strcmp(char a[50],char b[50])
{
int i,j=0,t=0;
for(i=0;i<30;i++)
{
j=j+a[i]; /*没有引号*/
t=t+b[i];
}
if(j<t)
return -1;
else if(j=t)
return 0;
else
return 1;
}
中,不能只计算各字符串的和值(j与t),否则
字符串"123"就与"321"结果判断两字符串相同
----------------解决方案--------------------------------------------------------