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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-09-15
strcmp(char* ,char* )
相同返回0,不同返回非0
第2个回答  2008-09-15
用strcmp函数
相似回答