我想做一个函数,根据传递的字母改变某些值。(这些基本上是给定的方向:东,西......)
代码是:
data Movement = N Int | S Int | E Int | W Int deriving (Eq, Show)
step :: Movement -> (Int, Int) -> (Int, Int)
step (Movement x h) (y, z)
| x == N = (y, z+h)
| x == S = (y, z-h)
| x == W = (y-h, z)
| x == E = (y+h, z)
Run Code Online (Sandbox Code Playgroud)
一个例子:
step (N 1) (239, 578) == (239, 579)
step (S 1) (240, 578) == (240, 577)
step …Run Code Online (Sandbox Code Playgroud) 我必须检查字符串的第一个字符是小写还是大写。
当我使用像 David 这样的英文名字时它很好用,但是当一个带有重音字母的名字弹出时,比如 Á,É,Í,Ó 等......(比如 Árpád)然后它认为它是小写的。
string name;
std::cin>>name;
if(std::isupper(name[0]))
{
std::cout<<"Upper case"<<std::endl;
}
else
{
std::cout<<"Lower case"<<std::endl;
}
Run Code Online (Sandbox Code Playgroud)