广州建设监理协会网站,电子商务网站建设的总体设计,网站实名审核,中级注册安全工程师目录 C语言字符串比较
C语言字符比较
C字符串比较 C语言字符串比较
在C语言中用于比较字符串的函数为strcmp函数#xff0c;该函数定义在头文件string.h中#xff0c;是一个标准库函数。strcmp函数的工作原理是逐字符比较两个字符串#xff0c;直到找到不同的字符…目录 C语言字符串比较
C语言字符比较
C字符串比较 C语言字符串比较
在C语言中用于比较字符串的函数为strcmp函数该函数定义在头文件string.h中是一个标准库函数。strcmp函数的工作原理是逐字符比较两个字符串直到找到不同的字符或遇到空符\0为止。函数的声明如下
int strcmp(const char *s1, const char *s2);
函数接受两个字符串地址作为参数即参数可以是指针字符串常量或字符数组名。
函数返回值
如果两个字符串相同函数返回0如果第一个字符串按字母顺序排在第二个字符串之前函数返回一个负数值如果第一个字符串按字母顺序排在第二个字符串之后函数返回一个正数值 注意C中大写字母和小写字母的ASCII码不同小写字母的编码比大写字母大。如果两个相同的字符串一个小写一个大写则strcmp函数将返回一个非零值。 如果str1和str2为字符指针则函数返回值存在以下关系
字符串关系表达式表达式值str1和str2相等strcmp(str1,str2)0truestr1和str2不相等 strcmp(str1,str2) !0 strcmp(str1,str2) 都为truestr1在str2的前面strcmp(str1,str2)0truestr1在str2的后面strcmp(str1,str2)0true
另外如果str1和str2为字符数组如果存储在字符数组中的字符串相同不管str1和str2两个数组的大小是否相等strcmp函数都将返回0。因为strcmp函数在逐字符比较时遇到空值字符就停止了。
下面代码为寻找look字符串的一个字符串比较实例并输出遍历寻找过程中的所有字符串。
#include iostream
#include cstring
using namespace std;
int main()
{char word[5] ?ook;for (char ch a; strcmp(word, look); ch){cout word endl;word[0] ch;}cout End string is: word;return 0;
}
输出结果 代码说明
初始化数组时设置数组的大小为5这是因为字符串?ook最后需要加上一个空值字符来作为字符串的结束标志。 当使用ASCII字符编码集时从a到z的字母的编码是连续的所以可以使用递增操作符来遍历所有的字母。
C语言字符比较
C语言中虽然不能用关系操作符来比较字符串但可以用它来比较字符因为字符实际上是整型下面代码为输出所有的字母。
#include iostream
#include cstring
using namespace std;
int main()
{for (char ch a;chz;ch){cout ch ;}return 0;
}
C字符串比较
C语句中不能用关系操作符比较字符串但C中的string类对象可以直接使用关系操作符来比较字符串。上面寻找look字符串的实例可以直接用关系操作符将string类对象与look字符串常量进行比较。
#include iostream
#include cstring
using namespace std;
int main()
{string word ?ook;for (char ch a;word!look;ch){cout word endl;word[0] ch;}cout End string is: word;return 0;
}