C语言:编写函数MyStrCmp并用相应主函数进行测试
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言:编写函数MyStrCmp并用相应主函数进行测试相关的知识,希望对你有一定的参考价值。
函数MyStrCmp的原型是:int MyStrCmp( char
*s1,char *s2 ),其功能是比较两个字符串s1和s2的大小。请编写函数MyStrCmp(不能使用标准库函数函数strcmp( ))并用相应主函数进行测试。主函数输入字串时,有字符串长度限制提示。
请务必于11月9日10点之前完成,才能得到分数。
#include<string.h>
int MyStrCmp( char *s1,char *s2 );
int main()
char s1[30], s2[30];
gets(s1);
gets(s2);
printf("%d\\n", MyStrCmp(s1, s2));
return 0;
int MyStrCmp(char * s1, char * s2)
int flag = 0;//0表示相等,1表示s1大于s2,-1表示s1小于s2
int minLength = 0; //较短串的长度
int i = 0;
minLength = strlen(s1) >= strlen(s2) ? strlen(s1) : strlen(s2);
for(i = 0; i < minLength; i++)
if(s1[i] != s2[i])
if(s1[i] > s2[i])
flag = 1;
else
flag = -1;
break;
else
continue;
return flag;
参考技术A #include<stdio.h>
#define N 100
int MyStrCmp(char * s1, char * s2)
int ret, i=0;
while(s1[i]!='\0' && s2[i]!='\0' && s1[i]==s2[i])
i++;
if(s1[i]==0 && s2[i]==0)
ret=0; //相等
else if(s1[i]==0)
ret=-1; //串s1小于串s2
else if(s2[i]==0)
ret=1; //串s1大于串s2
else if(s1[i]>s2[i])
ret=1; //串s1大于串s2
else
ret=-1; //串s1小于串s2
return ret;
int main()
char s1[N], s2[N];
gets(s1);
gets(s2);
printf("%s\n%s\n",s1,s2);
printf("%d\n", MyStrCmp(s1, s2));
return 0;
参考技术B BOOL MyStrCmp(char* a,char* b)
return a[0]>=b[0];
C语言:编写一个函数,将一个字符串按逆序存放。在主函数中输入和输出字符串。
关于我编写的:
#include<stdio.h>
#include<string.h>
char str1[50];
int n=strlen(str1);
int main()
char inverted(char str[]);
printf("Please input a string:\n");
gets(str1);
printf("转换后的字符串为:%s\n",inverted(str1));
return 0;
char inverted(char str[])
char str2[50];
int i;
for(i=0;i<n;i++)
str2[i]=str[n-i];
return(str2[i]);
VC++6.0 运行结果:程序运行出错。需请教一下问题的根源。
反序字符串,只需要将首尾字符依次调换即可。
#include <stdio.h>#include <string.h>
// 反序字符串x并返回
char* reverse(char *x)
int len = strlen(x);
int i, n = len / 2;
char tem;
for (i = 0; i <= n; i++)
tem = x[i];
x[i] = x[len - 1 - i];
x[len - 1 - i] = tem;
return x;
int main()
char str[100];
printf("input a string :");
gets(str);
puts(reverse(str));
return 0;
参考技术A 你函数写在后面的话,前面至少要声明一下的。。
#include <stdio.h>
int main()
char input[50];
int i=0,j;
printf("pleaes input a string\n");
while((input[i]=getchar())!='\n')
i++;
for(j=i;j>=0;j--)
printf("%c",input[j]);
return 1;
本回答被提问者采纳 参考技术B 错了这么多 - -
看看改好的
#include
#include
#define N 50
void reverse(char a[])
int i,j,temp;
for(i=0,j=strlen(a)-1;i<j;i++,j--)
temp=a[j];
a[j]=a[i];
a[i]=temp;
void main ()
char b[N] = "";
printf("请输入一串字符:\n");
scanf("%s",b);
printf("反序输出的结果是:\n");
reverse(b);
puts(b);
又不懂得继续问。 参考技术C 推荐回答反序字符串,只需要将首尾字符依次调换即可。include include 反序字符串x并返回 char*reverse(char*x) int len=strlen(x);int i,n=len/2;char tem;for(i=0;i;i+) tem=x[i];x[i]=x[len-1-i];x[len-1-i]=tem; return x; int main() char str[100];printf("input a string:");gets(str)...
以上是关于C语言:编写函数MyStrCmp并用相应主函数进行测试的主要内容,如果未能解决你的问题,请参考以下文章
在c语言中子函数引用主函数中的值和引用主函数某个值的地址的区别
输入任意n个整数,再输入一个整数m,在n中找出与m最接近的整数,并用m置换该数,用c语言函数编写!