字符串的asc码值怎么算,,也就是说怎么比较两个字符串的大小

pepperhcj 2014-08-05 04:05:06
例如 aaa 和bb的字符串的大小,,怎么算
...全文
6539 31 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
pepperhcj 2014-08-11
  • 打赏
  • 举报
回复
引用 26 楼 xhw88398569 的回复:
[quote=引用 25 楼 lovesmiles 的回复:] [quote=引用 24 楼 u012632288 的回复:] [quote=引用 23 楼 xhw88398569 的回复:] [quote=引用 22 楼 xhw88398569 的回复:] [quote=引用 19 楼 lovesmiles 的回复:] [quote=引用 8 楼 u012632288 的回复:] [quote=引用 3 楼 u012632288 的回复:] 字符串的asc码值怎么计算,,,例如 aa的asc值是多少,,sd的是多少,
我现在想知道字符串的asc值怎么计算。。求大神。。注意是字符串 。。比如说 sbc 和abb 的asc码值怎么计算,,计算机制是什么[/quote] 字符串没有ASCII码!!!只有字符才有,字符串的比较就是分成一个一个字符比较,第一个和第一个比,如果二个相等,就第二个和第二个比。一直比出一个大小为止。[/quote]比如说“ab”就是(16<<97) + (8<<98) + (0<<0) 'a','b','\0'[/quote]我把操作数和移动位数写反了[/quote] 其实我看不懂,,操作数和移动位数 为什么要这样。。。[/quote] 别看他的,不知道他在写什么。我给你举个例子: "abc"和"abd"比较。 首先比较第一个字母,a,ASCII码是97.大家都一样、 比较第二个字母,b,ASCII是98,大家都一样。 比较第三个字母,前面的是c,ASCII是的99,后面的是d,ASCII是100, 100比99大,于是返回结果abd>abc. 就是这样。明白没[/quote]楼主好像说的是整体换成整数数值的大小,不是strcmp()。我也不知道楼主为什么这么想[/quote] 对,就是整体换成数值大小怎么算,操作数和移动位数 怎么弄的
pepperhcj 2014-08-11
  • 打赏
  • 举报
回复
引用 29 楼 ChaosStudyC 的回复:
[quote=引用 20 楼 zhao4zhong1 的回复:] 这8个人的统一身份证号码是多少啊?
我也想说这句..[/quote] 什么意思
ChaosStudyC 2014-08-07
  • 打赏
  • 举报
回复
引用 20 楼 zhao4zhong1 的回复:
这8个人的统一身份证号码是多少啊?
我也想说这句..
ChaosStudyC 2014-08-07
  • 打赏
  • 举报
回复
细说要从数据类型说起.我们知道每个变量都是储存在内存的特定空间内,比如我定义一个变量int a=98;那么a就以补码的形式储存在某个内存地址上,如果我们强行将a的数据类型变为字符型(显示转换)的话,在内存上,这个a的补码是不变的,就是说a的实际值没有改变,但是如果用cout输出到控制台上就可以看见这个98变成了ASCII对应的 b 了,ASCII就是这样的转换关系。如果要用strcmp函数来比较两个字符串的大小,首先将两个字符串的第一个字符进行比较,就拿你的例子来说,“aaa”的第一个字符是‘a’,“bb”的第一个字符是‘b’,那么a的ASCII码是97,而b的ASCII是98,所以函数就会返回-1,再假如,如果两个字符串分别是“aba”和“aca”的话,首先比较第一个字符,两个都是a,那么就会比较第二个字符,在第二次比较里面,b的ASCII是98,c的ASCII是99,那么就得出“aba”是比“aca”小,所以函数就会返回-1。其他也就这样如此类推了
勤奋的小游侠 2014-08-06
  • 打赏
  • 举报
回复
引用 8 楼 u012632288 的回复:
[quote=引用 3 楼 u012632288 的回复:] 字符串的asc码值怎么计算,,,例如 aa的asc值是多少,,sd的是多少,
我现在想知道字符串的asc值怎么计算。。求大神。。注意是字符串 。。比如说 sbc 和abb 的asc码值怎么计算,,计算机制是什么[/quote] 字符串没有ASCII码!!!只有字符才有,字符串的比较就是分成一个一个字符比较,第一个和第一个比,如果二个相等,就第二个和第二个比。一直比出一个大小为止。
勤奋的小游侠 2014-08-06
  • 打赏
  • 举报
回复
引用 26 楼 xhw88398569 的回复:
[quote=引用 25 楼 lovesmiles 的回复:] [quote=引用 24 楼 u012632288 的回复:] [quote=引用 23 楼 xhw88398569 的回复:] [quote=引用 22 楼 xhw88398569 的回复:] [quote=引用 19 楼 lovesmiles 的回复:] [quote=引用 8 楼 u012632288 的回复:] [quote=引用 3 楼 u012632288 的回复:] 字符串的asc码值怎么计算,,,例如 aa的asc值是多少,,sd的是多少,
我现在想知道字符串的asc值怎么计算。。求大神。。注意是字符串 。。比如说 sbc 和abb 的asc码值怎么计算,,计算机制是什么[/quote] 字符串没有ASCII码!!!只有字符才有,字符串的比较就是分成一个一个字符比较,第一个和第一个比,如果二个相等,就第二个和第二个比。一直比出一个大小为止。[/quote]比如说“ab”就是(16<<97) + (8<<98) + (0<<0) 'a','b','\0'[/quote]我把操作数和移动位数写反了[/quote] 其实我看不懂,,操作数和移动位数 为什么要这样。。。[/quote] 别看他的,不知道他在写什么。我给你举个例子: "abc"和"abd"比较。 首先比较第一个字母,a,ASCII码是97.大家都一样、 比较第二个字母,b,ASCII是98,大家都一样。 比较第三个字母,前面的是c,ASCII是的99,后面的是d,ASCII是100, 100比99大,于是返回结果abd>abc. 就是这样。明白没[/quote]楼主好像说的是整体换成整数数值的大小,不是strcmp()。我也不知道楼主为什么这么想[/quote] 你看楼主问的问题就知道了,asii码是什么都没有搞懂
鼻涕虫de皮皮 2014-08-06
  • 打赏
  • 举报
回复
引用 25 楼 lovesmiles 的回复:
[quote=引用 24 楼 u012632288 的回复:] [quote=引用 23 楼 xhw88398569 的回复:] [quote=引用 22 楼 xhw88398569 的回复:] [quote=引用 19 楼 lovesmiles 的回复:] [quote=引用 8 楼 u012632288 的回复:] [quote=引用 3 楼 u012632288 的回复:] 字符串的asc码值怎么计算,,,例如 aa的asc值是多少,,sd的是多少,
我现在想知道字符串的asc值怎么计算。。求大神。。注意是字符串 。。比如说 sbc 和abb 的asc码值怎么计算,,计算机制是什么[/quote] 字符串没有ASCII码!!!只有字符才有,字符串的比较就是分成一个一个字符比较,第一个和第一个比,如果二个相等,就第二个和第二个比。一直比出一个大小为止。[/quote]比如说“ab”就是(16<<97) + (8<<98) + (0<<0) 'a','b','\0'[/quote]我把操作数和移动位数写反了[/quote] 其实我看不懂,,操作数和移动位数 为什么要这样。。。[/quote] 别看他的,不知道他在写什么。我给你举个例子: "abc"和"abd"比较。 首先比较第一个字母,a,ASCII码是97.大家都一样、 比较第二个字母,b,ASCII是98,大家都一样。 比较第三个字母,前面的是c,ASCII是的99,后面的是d,ASCII是100, 100比99大,于是返回结果abd>abc. 就是这样。明白没[/quote]楼主好像说的是整体换成整数数值的大小,不是strcmp()。我也不知道楼主为什么这么想
勤奋的小游侠 2014-08-06
  • 打赏
  • 举报
回复
引用 24 楼 u012632288 的回复:
[quote=引用 23 楼 xhw88398569 的回复:] [quote=引用 22 楼 xhw88398569 的回复:] [quote=引用 19 楼 lovesmiles 的回复:] [quote=引用 8 楼 u012632288 的回复:] [quote=引用 3 楼 u012632288 的回复:] 字符串的asc码值怎么计算,,,例如 aa的asc值是多少,,sd的是多少,
我现在想知道字符串的asc值怎么计算。。求大神。。注意是字符串 。。比如说 sbc 和abb 的asc码值怎么计算,,计算机制是什么[/quote] 字符串没有ASCII码!!!只有字符才有,字符串的比较就是分成一个一个字符比较,第一个和第一个比,如果二个相等,就第二个和第二个比。一直比出一个大小为止。[/quote]比如说“ab”就是(16<<97) + (8<<98) + (0<<0) 'a','b','\0'[/quote]我把操作数和移动位数写反了[/quote] 其实我看不懂,,操作数和移动位数 为什么要这样。。。[/quote] 别看他的,不知道他在写什么。我给你举个例子: "abc"和"abd"比较。 首先比较第一个字母,a,ASCII码是97.大家都一样、 比较第二个字母,b,ASCII是98,大家都一样。 比较第三个字母,前面的是c,ASCII是的99,后面的是d,ASCII是100, 100比99大,于是返回结果abd>abc. 就是这样。明白没
pepperhcj 2014-08-06
  • 打赏
  • 举报
回复
引用 23 楼 xhw88398569 的回复:
[quote=引用 22 楼 xhw88398569 的回复:] [quote=引用 19 楼 lovesmiles 的回复:] [quote=引用 8 楼 u012632288 的回复:] [quote=引用 3 楼 u012632288 的回复:] 字符串的asc码值怎么计算,,,例如 aa的asc值是多少,,sd的是多少,
我现在想知道字符串的asc值怎么计算。。求大神。。注意是字符串 。。比如说 sbc 和abb 的asc码值怎么计算,,计算机制是什么[/quote] 字符串没有ASCII码!!!只有字符才有,字符串的比较就是分成一个一个字符比较,第一个和第一个比,如果二个相等,就第二个和第二个比。一直比出一个大小为止。[/quote]比如说“ab”就是(16<<97) + (8<<98) + (0<<0) 'a','b','\0'[/quote]我把操作数和移动位数写反了[/quote] 其实我看不懂,,操作数和移动位数 为什么要这样。。。
xiaohuh421 2014-08-06
  • 打赏
  • 举报
回复
ASCII码是字符串的内存数值. 所以 char buf1[] = "aaa" 其内存数值就已经是ASCII, 按顺序比较即可.
鼻涕虫de皮皮 2014-08-06
  • 打赏
  • 举报
回复
引用 22 楼 xhw88398569 的回复:
[quote=引用 19 楼 lovesmiles 的回复:] [quote=引用 8 楼 u012632288 的回复:] [quote=引用 3 楼 u012632288 的回复:] 字符串的asc码值怎么计算,,,例如 aa的asc值是多少,,sd的是多少,
我现在想知道字符串的asc值怎么计算。。求大神。。注意是字符串 。。比如说 sbc 和abb 的asc码值怎么计算,,计算机制是什么[/quote] 字符串没有ASCII码!!!只有字符才有,字符串的比较就是分成一个一个字符比较,第一个和第一个比,如果二个相等,就第二个和第二个比。一直比出一个大小为止。[/quote]比如说“ab”就是(16<<97) + (8<<98) + (0<<0) 'a','b','\0'[/quote]我把操作数和移动位数写反了
鼻涕虫de皮皮 2014-08-06
  • 打赏
  • 举报
回复
引用 19 楼 lovesmiles 的回复:
[quote=引用 8 楼 u012632288 的回复:] [quote=引用 3 楼 u012632288 的回复:] 字符串的asc码值怎么计算,,,例如 aa的asc值是多少,,sd的是多少,
我现在想知道字符串的asc值怎么计算。。求大神。。注意是字符串 。。比如说 sbc 和abb 的asc码值怎么计算,,计算机制是什么[/quote] 字符串没有ASCII码!!!只有字符才有,字符串的比较就是分成一个一个字符比较,第一个和第一个比,如果二个相等,就第二个和第二个比。一直比出一个大小为止。[/quote]比如说“ab”就是(16<<97) + (8<<98) + (0<<0) 'a','b','\0'
赵4老师 2014-08-06
  • 打赏
  • 举报
回复
C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC\STRCMP.C
/***
*strcmp.c - routine to compare two strings (for equal, less, or greater)
*
*       Copyright (c) 1985-1997, Microsoft Corporation. All rights reserved.
*
*Purpose:
*       Compares two string, determining their lexical order.
*
*******************************************************************************/

#include <cruntime.h>
#include <string.h>

#ifdef _MSC_VER
#pragma function(strcmp)
#endif  /* _MSC_VER */

/***
*strcmp - compare two strings, returning less than, equal to, or greater than
*
*Purpose:
*       STRCMP compares two strings and returns an integer
*       to indicate whether the first is less than the second, the two are
*       equal, or whether the first is greater than the second.
*
*       Comparison is done byte by byte on an UNSIGNED basis, which is to
*       say that Null (0) is less than any other character (1-255).
*
*Entry:
*       const char * src - string for left-hand side of comparison
*       const char * dst - string for right-hand side of comparison
*
*Exit:
*       returns -1 if src <  dst
*       returns  0 if src == dst
*       returns +1 if src >  dst
*
*Exceptions:
*
*******************************************************************************/

int __cdecl strcmp (
        const char * src,
        const char * dst
        )
{
        int ret = 0 ;

        while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)
                ++src, ++dst;

        if ( ret < 0 )
                ret = -1 ;
        else if ( ret > 0 )
                ret = 1 ;

        return( ret );
}
赵4老师 2014-08-06
  • 打赏
  • 举报
回复
这8个人的统一身份证号码是多少啊?
pepperhcj 2014-08-05
  • 打赏
  • 举报
回复
引用 13 楼 xhw88398569 的回复:
[quote=引用 8 楼 u012632288 的回复:] [quote=引用 3 楼 u012632288 的回复:] 字符串的asc码值怎么计算,,,例如 aa的asc值是多少,,sd的是多少,
我现在想知道字符串的asc值怎么计算。。求大神。。注意是字符串 。。比如说 sbc 和abb 的asc码值怎么计算,,计算机制是什么[/quote]字符ascii就那么一百多个,照你的意思“sbc”和“abb”在内存中占四个字节,每个字节对应相应的ascii码,每个字符依次偏移8位,一共是32位。你转成整形输出不就知道了[/quote] 你的回答好像是我想要的,,可以详细点吗,,举一个例子。
707wk 2014-08-05
  • 打赏
  • 举报
回复
lz你看书没啊,怎么会提出这种不存在的东西
cyd54454 2014-08-05
  • 打赏
  • 举报
回复
引用 3 楼 u012632288 的回复:
字符串的asc码值怎么计算,,,例如 aa的asc值是多少,,sd的是多少,
是先比较第一个字符的ascll码,如果相等再继续比较下一个,一个个字符比较的,网上应该很多strcmp()函数的具体实现
  • 打赏
  • 举报
回复
ascll吗是对应每一个字符的
鼻涕虫de皮皮 2014-08-05
  • 打赏
  • 举报
回复
引用 8 楼 u012632288 的回复:
[quote=引用 3 楼 u012632288 的回复:] 字符串的asc码值怎么计算,,,例如 aa的asc值是多少,,sd的是多少,
我现在想知道字符串的asc值怎么计算。。求大神。。注意是字符串 。。比如说 sbc 和abb 的asc码值怎么计算,,计算机制是什么[/quote]字符ascii就那么一百多个,照你的意思“sbc”和“abb”在内存中占四个字节,每个字节对应相应的ascii码,每个字符依次偏移8位,一共是32位。你转成整形输出不就知道了
鼻涕虫de皮皮 2014-08-05
  • 打赏
  • 举报
回复
引用 3 楼 u012632288 的回复:
字符串的asc码值怎么计算,,,例如 aa的asc值是多少,,sd的是多少,
你是想比字符ascii,还是想把他们转换成整形对比啊?“aa”这个ascii码没听过,水平太低了没见过
加载更多回复(11)

70,017

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧