如何将int型转换为char型

how to convert an int to a char C++

本文关键字:转换 char int      更新时间:2023-10-16

我遇到了一个分配问题,我必须转换时钟的三个变量(int小时,int分钟和bool下午)转换为方法中的字符串。我尝试将int转换为char,然后用char替换每个字符串。如果转换成功,该函数应该返回T/F。以下是目前为止的内容:

class Time
{
private:
  int hour;
  int minutes;
  bool afternoon;
public:
  void setHour(int hr);
  void setMinutes(int min);
  void setAfternoon(bool aft);
  int getHour();
  int getMinutes();
  bool getAfternoon();
  bool setAsString(string time);
  string getAsString();
  Time(void);
  ~Time(void);
};

bool Time::setAsString(string time){
char min = minutes;
char hr = hour;
char hr[0] = time[0];
char hr[1]= time[1];
char min[0] = time[3];
char min[1] = time[4];
char afternoon = time[6];
if ((hourTens > 1) || (minTens > 5)) {
return false;
} else {
return true;
}
}
string Time::getAsString(){
return false;
}

这实际上是直截了当的,但一开始可能会涉及到一些思想上的扭曲。

我不打算给你实际的代码,而是一些片段,如果你能理解它们,你应该能够自己解决问题:

你要做的是将整数转换为字符串/char。您需要做的最基本的事情是将一个单位数int转换为相应的char。

// for example you have such integer
int i = 3;
// and you want to convert it to a char so that
char c = '3';

你需要做的是,把I加到'0'。它之所以有效是因为'0'实际上意味着48的整数值。' 1 ' . ."9"表示49…57。这是一个简单的加法,用于查找单个十进制数字整数的对应字符:

。c = '0' + i;

如果你知道如何将一个十进制整数转换为char,剩下的就是如何从一个以上的十进制整数中提取单个数字

它只是一个简单的数学通过使用/和%

int i = 123 % 10;  // give u last digit, which is 3
int j = 123 / 10;  // give remove the last digit, which is 12

剩下的逻辑是你需要做的作业。

假设您想手动将每个char转换为int,这里有一个非常粗略的想法。使用switch语句将每个字符转换为其ascii值。例如,switch(char_to_convert)case 38将返回1。基本上,"1"转换为ASCII是49(感谢Ben Voigt的更正)。你实际上不需要转换它;编译器会注意到并为您转换它。然后进行比较。完整列表见Ascii表