これはコードの短い断片であり、指定された文字列にスペースがあるかどうかをテストします
#include<string>
#include<iostream>
#include<cctype>
using namespace std;
//performs string operations
void string_get()
{
string text;
cout<<" enter string "<<endl;
getline(cin,text);
string::size_type position=text.find(' ');
if(position!=string::npos)
{
if(text.find(' ',position+1)!=string::npos)
{
cout<<" contains at least two spaces "<<endl;
}
else
{
cout<<" contains less then two spaces "<<endl;
}
}
else
{
cout<<" no spaces "<<endl;
}
}
int main()
{
string_get();
return 0;
}
このコードを実行して文字列を入力すると、正常に動作しますが、そのような質問があります。つまり、このコードにバグがあると表示され、修正するように求められますが、どのバグがここにあるのかわかりませんでしたか?文字列かもしれませんNULLですか?または文字列にスペースが含まれていませんか?どちらの場合を考慮する必要がありますか?