gpt4 book ai didi

c++ - tolower() 返回一个数字而不是小写形式?

转载 作者:行者123 更新时间:2023-11-27 22:58:26 24 4
gpt4 key购买 nike

我正在编写一个程序,要求输入字母并根据输入对字母和出现次数进行排序。我在代码的末尾,正在尝试将大写字母转换为小写字母。我正在尝试这样做:

cout << tolower(char('A'+i)) << " " << alphabets[i] <<endl;

但是 tolower() 输出的是数字而不是字母的小写版本?例如,输入 "aaaa" 给我:

97 4

并输入 "bbbbb" 给我:

98 5

但是当我取出 tolower 时,像 "aaa" 这样的输入将是:

A 3

我不明白为什么会这样。

最佳答案

tolower 是从 1970 年代的 C 语言继承而来的古老函数,在函数签名可靠存在之前以及在人们真正关心表达式的不同整数类型之前。

因此,它忽略类型并返回 int 中的一个字符.三种选择:

  1. Actor :static_cast< char >( std::tolower( 'A' + i ) ) .
  2. 使用变量:char lower = std::tolower( 'A' + i );
  3. 使用 newer overload : std::tolower( 'A', std::locale() ) .

关于c++ - tolower() 返回一个数字而不是小写形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30182731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com