簡體   English   中英

如何將int轉換為char C ++

[英]how to convert an int to a char C++

我在分配時遇到問題,我必須轉換時鍾的三個變量(int hour,int minutes和bool afternoon)才能轉換為方法中的字符串。 我嘗試將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。 這是一個簡單的補充,可以找出單個十進制數字整數的相應字符:

即char c ='0'+ i;

如果您知道如何將單個十進制數字int轉換為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語句將每個char轉換為其ascii值。 例如, switch(char_to_convert)case 38將返回1.基本上,轉換為ASCII的“1”為49(感謝Ben Voigt進行校正)。 你實際上並不需要轉換它; 你編譯器會注意到並為你轉換它。 然后你進行比較。 有關完整列表,請參見Ascii表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM