C++ 检查是否有穿孔
因此,目标是检查C样式字符串是否以句号或感叹号结尾。然而,出于某种原因,我一直在撒谎C++ 检查是否有穿孔,c++,arrays,loops,for-loop,if-statement,C++,Arrays,Loops,For Loop,If Statement,因此,目标是检查C样式字符串是否以句号或感叹号结尾。然而,出于某种原因,我一直在撒谎 bool isItSentence(const char* s) { int x = strlen(s); for (int c = 0; s[c] != '\0'; c++) { if (!isupper(s[0])) return false; if (isupper(s[c]) && c > 0) return false;
bool isItSentence(const char* s)
{
int x = strlen(s);
for (int c = 0; s[c] != '\0'; c++)
{
if (!isupper(s[0])) return false;
if (isupper(s[c]) && c > 0) return false;
if (s[x-1] != '.') return false;
if (s[x-1] != '!') return false;
}
return true;
}
int main()
{
std::string str = "Smelly.";
reverse(str.c_str());
std::cout << isItSentence(str.c_str()) << std::endl;
std::cout << strlen(str.c_str()) << std::endl;
system("pause");
bool-isitcontent(const-char*s)
{
int x=strlen(s);
对于(int c=0;s[c]!='\0';c++)
{
如果(!isupper(s[0])返回false;
if(isupper(s[c])&&c>0)返回false;
如果(s[x-1]!='。)返回false;
如果(s[x-1]!=“!”)返回false;
}
返回true;
}
int main()
{
std::string str=“难闻。”;
反向(str.c_str());
std::cout首先,注意s[x-1]
是一个循环不变量,因此您最好将其移出for
循环
if (s[x-1] != '.') return false;
if (s[x-1] != '!') return false;
这总是错误的(字符不能同时是点和解释标记)。
测试应该是
if (s[x-1] != '.' && s[x-1] != '!') return false;
这是真的,但即使这是固定的,显示的代码仍然是错误的。答案不完整。