首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转换字符大小写的程序

问转换字符大小写的程序
EN

Stack Overflow用户
提问于 2015-04-01 02:09:15
回答 3查看 55关注 0票数 0

我正在编写一个程序,如果用户输入一个小写字符,则生成其大写字符,反之亦然。我使用一个函数来根据ASCII表将字符转换为小写或大写。小写到大写的转换正确,但大写到小写的转换不正确。

代码语言:javascript
复制
char changeCapitalization(char n)
{
    //uppercase to lowercase
    if(n>=65 && n<=90)
        n=n+32;
    //lowercase to uppercase
    if(n>= 97 && n<=122)
        n=n-32;
    return n;
}  
EN

回答 3

Stack Overflow用户

发布于 2015-04-01 02:18:59

其他人本质上是想要这样的东西(从下到上逻辑上的‘else if’而不是'if‘):

代码语言:javascript
复制
char changeCapitalization(char n)
{        
    if(n>=65 && n<=90) //uppercase to lowercase
        n=n+32;    
    else if(n>= 97 && n<=122) //lowercase to uppercase
        n=n-32;
    return n;
}  
票数 2
EN

Stack Overflow用户

发布于 2015-04-01 02:12:00

按顺序执行两个if语句。因此,如果您有一个大写字符,它将首先转换为小写,然后,下一条if语句将把它转换回小写。如果只想在第一个条件不为真的情况下检查第二个条件,请将else放在第二个if之前。

此外,您可以相互比较字符:if (n >= 'A' && n <= 'Z'),而不是直接使用ASCII码。

稍后,当您更熟悉编程并开始进行更大的项目时,您应该使用该语言的内置函数来处理字符串和字符,例如islower()和isupper() -如果您需要支持任何非英语字符,则应该阅读此great article on the intricacies of encoding international characters。

票数 1
EN

Stack Overflow用户

发布于 2015-04-01 02:21:57

更改线路

代码语言:javascript
复制
if(n>= 97 && n<=122)

使用

代码语言:javascript
复制
else if(n>= 97 && n<=122)

因为这种情况与你在问题中所说的相反

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29375481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档