C语言:用指针实现字符串大小的比较,应该怎样做呢

2024-08-24 12:25:45 浏览

字符串比较,可采用循环遍历字符串,用对应位置的指针所指向的字符进行比较,当相等时,循环,遇到不等或其中一个字符串结束时,结束循环,返回对应指针的对应的字符的差值,根据差值判断两个字符串的大小参考代码:运行结果:请输入字符串a: abcde请输入字符串b: acda

b请输入字符串a: abc请输入字符串b: abca=b

C语言用指针实现字符串的比较,应该怎样

AsCII码字符串不是比较字符的长短,而是从每个字符串的第一个字符.进行比较.如DDI

是因为第一个字符串的D小于第二个字符串的J所以比较结果是,小于,又如ffk与ffa,l因为它们前两个字都是f所以比较第三个字符,因为k>a.所以,ffk>ffa

 在C语言中,“字符”与“字符串”之间,是有区别的。

1、首先,一个很明显的区别是:“字符”,使用单引号作为定界符,而“字符串”,是使用双引号作为定界符。

2、“字符”与“字符串”之间,除了定界符不同之外,还有一个区别是:“字符”占据一个字节,但是“字符串”是占据多个字节。而且,在“字符串”的结尾处,自动被编译器加上了'\0'这个字符,在ASCII码中,'\0'表示的是一个空字符。

3、在屏幕上要打印一个字符串的时候,在printf函数中,使用的是“%s”这个占位符。与“字符”的“%c”这个占位符是不同的。

C语言的字符数组有两种,比较方式也有所不同。

C语言的字符串是用字符数组表示的。约定以'\0'(ascii码0)作为结尾标记。

对于字符串类的字符数组,可以用string.h中的strcmp函数进行比较。

a, 从左向右依次比较每个元素;

b, 如果出现str1的元素ascii码比较大,则返回1;如果出现str2元素ascii码比较大,则返回-1。如果相等,则继续。

c, 如果一直相等,直到遇到\0,这时检查是否均为\0,如果均为\0,那么返回0;

d, 如果str1到\0,而str2没到,返回-1; 否则返回1。

总结规则就是,如果str1比str2大,返回1;如果相等,返回0;如果str1小,返回-1。

2 不带\0结束的字符数组。

对于此类数组,没有库函数可供使用,只能自己写函数进行比较。规则可以仿照strcmp的规则。

由于没有\0作为结束,所以参数中必须传入每个数组的元素个数。

//运行到这里,表示所有已判断元素均相等。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。