如何判断字符串是否相等

Python018

如何判断字符串是否相等,第1张

可以使用库函数strcmp判断:strcmp是C语言比较字符的库函数,形式为int strcmp(char *a, char *b);该函数会对a和b的每个字符,按照ascii码值比较,如果二者完全相同返回0;如果a的ascii码值先出现较大者,会返回1;否则返回-1。所以,要判断字符串相等,可以使用。

")else printf("str_1 is not equal to str_2.

")if (strcmp(str_1, str_3) == 0) printf("str_1 is equal to str_3.

")else printf("str_1 is not equalto str_3.

");} 上例的打印输出如下所示: str_1 is equal to str_2. str_1 is not equal to str_3. strcmp()函数有两个参数,即要比较的两个字符串。strcmp()函数对两个字符串进行大小写敏感的(case-sensitiVe)和字典式的(lexicographic)比较,并返回下列值之一。

串接子串

“串接”是 Σ* 上的重要二元运算。对于 Σ* 中的两个字符串 s 和 t,它们的串接被定义为在 s 中的字符序列之后跟随着 t 中的字符序列,并被指示为 st。例如,Σ = {a, b, …, z},并且 s = bear 且 t = hug,则 st = bearhug 而 ts = hugbear。

字符串串接是结合性的,但非交换性运算。空串充当单位;对于任何字符串 s,有 εs = sε = s。所以,集合 Σ* 和串接运算形成了幺半群,就是从 Σ 生成的自由幺半群。此外,长度函数定义从 Σ* 到非负整数的幺半群同态。

以上内容参考:百度百科-字符串

未知长度的字符串不用指针处理根本就是烦得一逼

比较两个字符串不是有现成的函数strcmp()吗

int strcmp(const char *s1,const char * s2)

s1 <s2 返回值小于0

相等返回0

s1>s2返回值>0

你需要的功能改成这样就好了:

bool mystrcmp(char* s1,char* s2)//s1,s2相等则返回1,不相等返回0

{

return !strcmp(s1,s2)?1:0

}

纯C编写,代码如下:

int compareString (char *string1, char *string2)

{

int i = 0

while ((*string1[i] != '\0') || (*string2[i] != '\0'))

{

if (*string1[i] != *string2[i]) {return i}

i++

}

return 0

}