编写c语言程序,不使用strcmp函数,比较任意两个字符串的大小。

编写c语言程序,不使用strcmp函数,比较任意两个字符串的大小。,第1张

首先

比较两个字符串的长度是否一样

int str1length = strlen(str1);

int str2length = strlen(str2);

如果不一样,就不用比了

if(str1 != str2) return 不相匹配

如果相等

int i = 0;

while( i < str1length)

{

if(str1[i] != str2[i])

{

return 不相匹配

}

i++;

}

else

return 相等

#include <stdioh>

#include <stringh>

main()

{

void sort(char name[],int n),print(char name[],int n);

char name[10], str[10][10];

int n, k;

printf("请输入要比较的字符串个数:\n");

scanf("%d",&n);

printf("请输入要比较的字符串:\n");

for(k=0;k<n;k++)

{

scanf("%s",& str[k]);

name[k]=str[k];

}

sort(name,n);

printf("比较的结果为:\n");

for(k=0;k<n;k++)

printf("%s\n",name[k]);

}

void sort(char name[],int n)

{

char temp;

int i, j, k;

for(i=0;i<n-1;i++)

{

k=i;

for(j=i+1;j<n;j++)

if(strcmp(name[k],name[j])>0)

k=j;

if(k!=i)

{temp=name[i];name[i]=name[k];name[k]=temp;}

}

}

凑乎能跑了,你这程序写的,不敢恭维

#include"stdioh"

int mmm(charaa[20],charbb[20],int c)

{

int a;

for(a=0;a&lt;20;a++)

{

if(aa[a]&gt;bb[a])

{

c+=1;

return(c);

//break;

}

if(aa[a]&lt;bb[a])

{

return(c);

//break;

}

}

}

void main()

{charstr[1][20];

int a,b,c,d,e,f,h,i,j;

printf("please input five char:\n");

/scanf("%s%s%s%s%s",str[0],str[1],str[2],str[3],str[4]);/

scanf("%s",str[0]);

for(i=0;i&lt;5;i++)

{a=mmm(str[0],str&lt;i&gt;,a);}

//for(i=0;i&lt;5;i++)

//{b=mmm(str[1],str&lt;i&gt;,b);}

//for(i=0;i&lt;5;i++)

//{c=mmm(str[2],str&lt;i&gt;,c);}

//for(i=0;i&lt;5;i++)

//{d=mmm(str[3],str&lt;i&gt;,d);}

//for(i=0;i&lt;5;i++)

//{e=mmm(str[4],str&lt;i&gt;,e);}

/printf("a=%d\nb=%d\nc=%d\nd=%d\ne=%d\n",a,b,c,d,e);/

printf("%d\n",a);

}

扩展资料:

printf用法:

printf()函数的调用格式为:printf("&lt;格式化字符串&gt;",&lt;参量表&gt;)。

其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。

比如:

int a=1234;

printf("a=%d\n",a);

输出结果为a=1234。

scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdioh里,因此在使用scanf函数时要加上#include&lt;stdioh&gt;。

int scanf(const charrestrict format,);

函数scanf()是从标准输入流stdin(标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。

如:

scanf("%d%d",&a,&b);

函数返回值为int型,如果a和b都被成功读入,那么scanf的返回值就是2。

实际上这个题目就是要手动实现strcmp这个函数的功能,在面试中可能会遇到类似的问题(strcpy等)

#include <stdioh>

// 当s1 > s2 的时候,会返回正数

// 当s1 < s2 的时候,会返回负数

// 当s1 == s2 的时候,会返回 0

int Mystrcmp(char s1, char s2)

{

if (s1 == NULL || s2 == NULL) // 字符串为空 

return 0;

while(s1 == s2 && s1 != '\0')

{

s1++;

s2++;

}

return s1 - s2;

}

// 给了一个测试例子~可以自己写几个例子测试一下。

int main()

{

printf("%d\n", Mystrcmp("ab", "aa"));

}

以下代码就可解决此问题:

//#include "stdafxh"//If the vc++60, with this line

#include "stdioh"

int mystrcmp(const char s1,const char s2){

    while(s1 && s2 && !(s1-s2))

        s1++,s2++;

    return s1-s2;

}

int main(void){//测试一下

    char a[]="12378",b[]="1233467890",f;

    if((f=mystrcmp(a,b))>0)

        printf("a>b\n");

    else if(f<0)

        printf("a<b\n");

    else printf("a=b\n");

    printf("\n");

    return 0;

}

1、打开VBA编辑界面。

2、首先先编写一个测试函数的框架,如下图所示。

3、接着定义两个字符串变量用来存放用来比较的两个字符串的。Dim str1 As StringDim str2 As String。

4、然后为定义好的两个字符串变量赋值。 str1 = "ABCD" str2="abcd"。

5、然后使用StrComp函数进行两个字符串比较,这个函数有三个参数,前两个参数是两个字符串,最后一个参数为1,是说明要进行字符串的比较,如果的不给第三个参数,那就是进行而二进制的比较。

6、最后点击运行查看结果。(结果为0说明两者相等,-1就是前者小于后者,1就是大于后者)。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12181095.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存