【问题标题】:Convert a letter to its ascii decimal form将字母转换为其 ascii 十进制形式
【发布时间】:2012-09-06 02:11:37
【问题描述】:

我在上基础编程课,对编程几乎一无所知,我们使用的是 c++,我当前的项目是打开控制台并执行以下操作

  1. 输入一个字母并输出其等效的ascii十进制数
  2. 输入一个介于 33 和 254 之间的数字,并输出其对应的字母
  3. 输入小写字母,输出大写
  4. 输入小时数,输出分钟数
  5. 输入大于60的数字,输出小时数和分钟数

这是我目前的工作

#include <iostream>

using namespace std;

void main ()  
{  
    cout<<"Assignment 2"<<endl;
    char somechar;
    int charval;
    int input_number;
    char output_letter2;
    char input_lower_letter;
    char output_upper_letter;
    int input_hours;
    int output_minutes;
    int input_minutes2;
    int output_hours2;
    int output_remainder_minutes;

    cout<<"Enter a letter"<<endl;
    cin>>somechar>>endl;
    cout<< somechar='a';
    int charval = somechar;
    printf("%c = %d\n",somechar,charval);

    system("pause");
}

非常感谢任何提示和帮助

【问题讨论】:

  • 你没有同学或老师做这些事吗?
  • 老师不给我作业的答案,我想我应该和班上的人交朋友
  • 学习的理念是提出正确的问题以了解如何解决问题。你可能已经在课堂上学习了解决这个问题的材料。这里的大多数人想要解决的问题并非纯粹出于教育目的。
  • 所以您已提交代码以供审核,但实际上并未提出任何问题。
  • 我真正需要的是将一个字母转换为它的ASCII十进制的函数,如果你把注意力放在那里,我确实在标题中说明了这一点

标签: c++ type-conversion


【解决方案1】:

一个关键的教训(他们似乎从未在学校教过)是从一个非常简单的程序开始,让它完美运行,然后构建,每一步都进行测试。

您的代码无法编译。让我们剥离您的代码并从头开始:

void main()
{
}

这不会编译。修复它:

int main()
{
  return(0);
}

现在添加一些输出:

#include <iostream>
using namespace std;

int main()
{
  cout << "Assignment 2" << endl;
  return(0);
}

到目前为止,一切都很好。现在输入:

#include <iostream>
using namespace std;

int main()
{
  cout << "Assignment 2" << endl;

  char somechar;
  cout << "Enter a letter" << endl;
  cin >> somechar >> endl;
  return(0);
}

这不会编译。修复它。

等等。看看它是如何工作的?

【讨论】:

  • 完全同意,我在 SO 上看到的最佳答案已经有一段时间了。他们可能会教语言,但很少教手艺,大多数人都很难学习或放弃。
【解决方案2】:
#include <iostream>
using namespace std;

int main() {

    char a ='a';
    cout << a << " => integer: " << (int)(a) << endl;

    int i = 98;
    cout << i << " => character: " << (char)(i) << endl;

    char b='b';
    cout << b <<" => lower: " << (char)(b+('a'-'A')) << endl;

    char c='c';
    cout << c << " => upper: " << (char)(c-('a'-'A')) << endl;

    int hours = 15;
    cout << hours << " hours => minutes: " << hours * 60 << endl;

    int minutes = 75;
    cout << minutes << " minutes => hours:minutes: " << minutes/60 << ":" << minutes % 60 << endl;

    system("PAUSE");

    return 0;
}

【讨论】:

    【解决方案3】:

    为此,您可以查看casting。要将字符 (char) 转换为整数 ASCII 值,您必须在该 char 值上转换 int。例如:

    #include <iostream>
    
    using namespace std;
    
    int main() {
            char myvalue;
            cout<<"Enter a character: ";
            cin>>myvalue;
            cout<<endl<<"The ASCII value is: "<<(int)myvalue<<endl;
            return 0;
    }
    

    现在因为这是作业,我不会为你完成这些步骤,但从这里开始应该很简单。

    关于casting的更多信息,我强烈建议:http://www.cplusplus.com/doc/tutorial/typecasting/

    【讨论】:

    • 当心 char 上的签名默认值。
    • 谢谢,我只需要看看它写的如何进行转换,我们还没有真正涵盖任何功能
    • @turb 您的欢迎,请继续并接受答案 :)
    猜你喜欢
    • 2010-12-03
    • 1970-01-01
    • 2011-11-21
    • 2022-11-29
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多