私は入力を確認するコードを書いた、私はHavePunct
フラグは常にfalse
を設定しました。しかし、私がhello,world!!
を入力すると、それは私に間違った結果を返します。あなたは私のコードに問題を参照してください場合は私に知らせてください:私はいつも私のコードで "false"を取得する
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
int main() {
string s,result_s;
char ch;
bool HavePunct = false;
int sLen = s.size();
cout << "Enter a string:" << endl;
getline(cin, s);
//检测字符串是否有符号
for (string::size_type i = 0;i != sLen; ++i) {
ch = s[i];
if (ispunct(ch)) {
HavePunct = true;
}
else
result_s += ch;
}
if (HavePunct) {
cout << "Result:" << result_s;
}
else {
cerr << "No punction in enter string!" << endl;
system("pause");
return -1;
}
system("pause");
return 0;
}
あなたはステッピングみました、彼はまだデバッガと思いましたか? –
'sLen'をどこで設定しますか。文字列はまだ入力されていますか? – NathanOliver