我試圖將用戶輸入字符串分解爲不同的變量。用戶字符串的確切格式必須是「星期二晚上6點40分」。我編寫了程序,以便一旦循環遇到第一個空格,其餘的變量將被填充,因爲只有天名稱的長度不同。我試了幾次,似乎無法獲得任何輸出。任何人都知道爲什麼?無法將字符分配給字符串變量
void input(Time & time){
string inputTime;
string charholder;
string day;
string hour;
string minute;
string amPm;
cout << "Enter a day and time: ";
getline(cin, inputTime);
for (int i = 0; i < inputTime.length() ; i++) {
charholder = inputTime[i];
cout << i << endl;
if (charholder != " ") {
day[i] = inputTime[i];
}
else {
hour[0] = inputTime[i+1];
minute[0] = inputTime[i+3];
minute[1] = inputTime[i+4];
amPm[0] = inputTime[i+6];
amPm[1] = inputTime[i+7];
break;
}
}
cout << day << hour << minute << amPm;
}
編輯:正確的代碼:
void input(Time & time){
string inputTime;
char charholder;
string day;
string hour;
string minute;
string amPm;
cout << "Enter a day and time: ";
getline(cin, inputTime);
int i = 0;
while (charholder != ' ') {
charholder = inputTime[i];
i++;
}
day = inputTime.substr(0,i);
hour = inputTime.substr(i,1);
minute = inputTime.substr(i+2,2);
amPm = inputTime.substr(i+5,2);
}
爲什麼你有這麼多串... – Rapptz 2013-03-07 22:07:22
你的代碼被完全打破,太多的問題 – nogard 2013-03-07 22:07:37