编写一个C语言函数,比较两个字符串的大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写一个C语言函数,比较两个字符串的大小相关的知识,希望对你有一定的参考价值。

#include<stdio.h>

#define N 100

int input(char*a,char*b)//输入两个字符串

printf("Input the first information:\\n");

fgets(a,N,stdin);

printf("Input the secend information:\\n");

fgets(b,N,stdin);

int my_strcmp(char*a,char*b)//比较字符串每个字符的大小

while((*a!='\\0')&&(*b!='\\0'))

if(*a>*b)

return 0;

else if(*a<*b)

return 1;

else

a++;

b++;

if((*a=='\\0')&&(*b!='\\0'))//字符串b比字符串a长

return 1;

else if((*a!='\\0')&&(*b=='\\0'))//字符串a比字符串b长

return 0;

else

return 2;

int main()

char a[N]=0;

char b[N]=0;

int net2=0;

input(a,b);//调用输入函数

net2=my_strcmp(a,b);//调用比较大小函数

if(0==net2)//输出大小

printf("a>b\\n");

else if(1==net2)

printf("a<b\\n");

else

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

return 0;

扩展资料:

一、return在函数中的作用

我们如果将函数看做一个加工厂,参数就是我们向加工厂投入的原料,具体的函数功能实际上就是加工的过程,而return语句代表返回值,就是加工厂在实现加工之后给“投资人”的成品。

二、return语句的特点

1、在函数当中,遇到return语句之后就意味着函数运行的结束,在此之后的代码是不运行的。

2、它不支持任何运算也没有任何内建方法,和任何其他的数据类型比较是否相等时永远返回false,也可以将None赋值给任何变量。

3、执行到return语句时,会退出函数,return之后的语句不再执行。但将return语句放在try语句块中,是个例外。

三、return的默认值:return函数默认的返回值为undefined。

参考技术A

思路:字符串比较大小即两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\\0'为止。当s1<s2时,返回-1;当s1=s2时,返回 0;当s1>s2时,返回1。

参考代码:

#include <stdio.h>
int strcmp(char *s1,char *s2) 
int i ;
for(i=0;(s1[i]!='\\0')&&(s2[i] != '\\0');i++) 
if(s1[i] > s2[i]) return 1;
else if(s1[i] < s2[i]) return -1;

if(s1[i] != '\\0') return 1;
if(s2[i] != '\\0') return -1;
return 0;

int main() 
char a[100],b[100];
gets(a);
gets(b);
if(strcmp(a,b)==1) printf("字符串a>字符串b");
else if(strcmp(a,b)==0) printf("字符串a=字符串b"); 
else printf("字符串a<字符串b"); 
return 0;

/*
运行结果:
asdg
asdg
字符串a=字符串b
*/

参考技术B #include <stdio.h>int MyStrcmp(char *p1,char *p2)
int i = 0;
for(;((p1[i] != '\0') && (p2[i] != '\0'));i++)
if(p1[i] > p2[i]) return 1;
else if(p1[i] < p2[i]) return -1;

if((p1[i] == '\0') && (p2[i] == '\0')) return 0;
if(p1[i] == '\0') return -1;
return 1;
int main()
int cmpres;
char s1[50];
char s2[50];
printf("Enter s1 you want to estimate:");
scanf("%s",s1);
printf("Enter s2 you want to estimate:");
scanf("%s",s2);
cmpres = MyStrcmp(s1,s2);
if(cmpres > 0) printf("s1 > s2\n\n");
else if(cmpres == 0) printf("s1 = s2\n\n");
else printf("s1 < s2\n\n");
return 0;

C语言问题 编写一程序将两个字符串连起来

1 用strcat函数
2 不用strcat函数

#include <stdio.h>
#include <string.h>
int main ()

    char str1[10],str2[5],*p,i;//这里用str1接收拼接后的字符串,确保str1大小够放!! 注意要留1位保存结束符'\\0'
    strcpy(str1,"abcd");strcpy(str2,"efgh");
    printf("原字符串分别为:%s   %s\\n\\n",str1,str2);

    strcat(str1,str2);
    printf("用strcat拼接后字符串:%s\\n\\n",str1);

    strcpy(str1,"abcd");strcpy(str2,"efgh");
    p=&str1[strlen(str1)];
    for(i=0;i<strlen(str2);i++)
        *p++=str2[i];
    *p=0;
    printf("不用strcat拼接后字符串:%s",str1);
    return 0;

参考技术A

一、用strcat函数:

#include "stdio.h"
#include "string.h"
int main(int argc,char *argv[])
char a[100]="abcdefg",b[]="1234567";
printf("%s\\n",strcat(a,b));
return 0;

二、不用strcat函数:

#include "stdio.h"
int main(int argc,char *argv[])
char a[100]="abcdefg",b[]="1234567",*pa=a,*pb=b;
while(*pa)
pa++;
while(*pa++=*pb++);
printf("%s\\n",a);
return 0;

反复看都是今天的提问,提交了变成 2015-12-04的提问了,且已经采纳别人了——百度知道最近怎么了?这么忽悠人!

参考技术B #include<stdio.h>
#include<string.h>
int main(void)
    char *ch1;
    char *ch2;
    printf("请输入第一个字符串:");
    scanf("%s",ch1);
    printf("请输入第二个字符串:");
    scanf("%s",ch2);
    strcat(ch1,ch2);
    printf("%s",ch1);
    return 0;

本回答被提问者和网友采纳
参考技术C #include<stdio.h>
void f(char *a, char *b)


while(*a++);
a--;
while(*a++=*b++);


void main()

char a[100], b[100];
gets(a);
gets(b);
f(a, b);
puts(a);

参考技术D 你的描述不够详细,我写了个给你参考

1 用strcat函数
#include <string>
#include <iostream>
using namespace std;
int main(void)
char s1[20]="abcd";
char s2[]="def";
strcat(s1,s2);
cout<<s1<<endl;
return 1;

2 不用strcat函数
#include <string>
#include <iostream>
using namespace std;
int main(void)
char s1[20]="abcd";
char s2[]="def";
char *p;
p=&s1[strlen(s1)];
strcpy(p,s2);
cout<<s1<<endl;
return 1;

以上是关于编写一个C语言函数,比较两个字符串的大小的主要内容,如果未能解决你的问题,请参考以下文章

C语言问题。。。strcmp怎么运用啊?

c语言 怎么比较字符串中内容的大小,内容是数字

c语言中strcmp的用法

c语言怎么比较字符的大小

C语言问题 编写一程序将两个字符串连起来

c++编程中怎样用strncmp函数计算两个字符串的数目,并比较大小。