gpt4 book ai didi

c++ - 如何返回一串字母数字字符(例如 1A003B3)中的最大值?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:05:41 24 4
gpt4 key购买 nike

例如,输入为 1A003B3。在这种情况下,程序必须返回 66,即 B 的 ASCII 值。

我试过这种方式,但没有得到正确的输出。

for(int d=0;d<str.length();d++)
{
if(str[d]>max)
max=str[d];
}

最佳答案

您可以使用标准算法 std::max_element。例如

#include <iostream>
#include <string>
#include <iterator>
#include <algorithm>

int main()
{
std::string s( "1A003B3" );

auto it = std::max_element( std::begin( s ), std::end( s ),
[]( char c1, char c2 )
{
return ( unsigned char )c1 < ( unsigned char )c2;
} );

std::cout << "The maximum value is "
<< static_cast<int>( static_cast<unsigned char>( *it ) ) << '\n';

return 0;
}

程序输出为

The maximum value is 66

至于你的代码片段,那么它应该看起来像下面这样

unsigned char max = ( unsigned char )str[0];

for( std::string::size_type i = 1; i < str.length(); i++ )
{
if ( max < ( unsigned char )str[i] ) max = ( unsigned char )str[i];
}

并使用表达式输出值

std::cout << static_cast<int>( max ) << '\n';

关于c++ - 如何返回一串字母数字字符(例如 1A003B3)中的最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58343333/

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