C语言中怎么判断两个字符串是相同的.

Posted

tags:

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

#include<stdio.h>
#include<string.h> //引入字符串头文件

struct //结构体定义 定义结构体和共用体,相当于定义一个数据类型,相当于int等。只有定义了这个类型的对象才能调用内部的数据。

int num;
char name[10];
char sex[3];
char job[5];

union //共用体

int banji; //班级
char position[10]; //职位
category;//共用体对象

person[2];//结构体对象

void main()

int i;
for(i=0;i<2;i++) //对结构体两个对象里的元素赋值。

printf("请输入 :学号 姓名 性别 工作 班级/职位\n");
scanf("%d %s %s %c",&person[i].num,&person[i].name,&person[i].sex,&person[i].job);

/* 问题在这________
// if(strcmp(person[i].job,"学生")>=0)
if(person[i].job=="学生")
scanf("%d",&person[i].category.banji);
else if(person[i].job=="教师")
//else if(strcmp(person[i].job,"学生")<0)
scanf("%s",person[i].category.position);
else printf("input error!");

*/

printf("\n");
printf("学号 姓名 性别 工作 班级/职位\n");

for(i=0;i<2;i++)

if(person[i].job=="学生")
printf("%-6d %-10s %-3s %-3s %-6d \n",person[i].num,person[i].name,person[i].sex,person[i].job,person[i].category.banji);
else

printf("%-6d %-10s %-3s %-3s %-6s \n",person[i].num,person[i].name,person[i].sex,person[i].job,person[i].category.position);


strcmp

原型:extern int strcmp(char *s1,char * s2);

用法:#include <string.h>

功能:比较字符串s1和s2。

说明:
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0

举例:

// strcmp.c

#include <syslib.h>
#include <string.h>

main()

char *s1="Hello, Programmers!";
char *s2="Hello, programmers!";
int r;

clrscr();

r=strcmp(s1,s2);
if(!r)
printf("s1 and s2 are identical");
else
if(r<0)
printf("s1 less than s2");
else
printf("s1 greater than s2");

getchar();
return 0;


相关函数:bcmp,memcmp,stricmp,strncmp

参考资料:http://www.ggv.com.cn/forum/clib/string/strcmp.html

参考技术A strcmp(char* ,char* )
相同返回0,不同返回非0
参考技术B 用strcmp函数

以上是关于C语言中怎么判断两个字符串是相同的.的主要内容,如果未能解决你的问题,请参考以下文章

c语言中如何判断两个字符串相等

C语言中判断两个字符串是不是相同的方法

怎么判断两个字符串是不是完全相同?

C语言中比较字符串大小的判断标准是啥?

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

c语言怎么判断是不是是指定字符串