用于比较两个字符串的函数是 strcmp()。语法如下:
strcmp(str1,str2);
按照ASCII码顺序比较字符串str1和str2的大小,比较的结果由函数返回。在两个字符串str1和str2相同时返回0;字符串str1大于字符串str2返回一个正值(并没有规定采用什么值),否则就返回负值。本函数也可以用于比较两个字符串常量,或比较字符数组和字符串常量。比较两个字符串的算法是:逐个比较两个串中对应的字符,字符大小按照ASCII码值确定。从左向右比较,如果遇到不同字符,所遇第一对不同字符的大小关系就确定了两个字符串的大小关系;如果未遇到不同字符而某个字符串首先结束,那么这个字符串是较小的;否则,两个字符串相等。示例如下:
#include <stdio.h>
#include <string.h>
void main()
{
char username[15],pwd[15];
printf("\n 请输入用户名: ");
gets(username);
printf("\n 请输入密码: ");
gets(pwd);
if ((strcmp(username,"John")==0) && (strcmp(pwd,"123456")==0))
printf("\n 您已成功登陆 \n");
else
printf("\n 用户名和/或密码无效 \n");
}
示例中声明了两个字符数组username和pwd,通过gets函数接收用户输入的用户名和密码。要求检查username的值是否为"John",而pwd的值是否为“123456”。要进行字符串的比较,不能使用==运算符,而应用strcmp()函数。如果比较的两个字符串相等,则strcmp()函数将返回0。如果username和pwd与给定的值相匹配,则显示一条消息“您已成功登陆”,否则显示“用用户名和/或密码无效”。