gpt4 book ai didi

c++ - 检查字符串中的字符

转载 作者:行者123 更新时间:2023-11-28 00:09:19 26 4
gpt4 key购买 nike

我有一个基本问题想做,我试图检查一个字符串是否包含小写字母或大写字母。我试过 islower()find() 但我没有得到想要的结果。

#include <iostream>
#include <cctype>

using namespace std;

int main()
{
string str1 = "";
cout << "Enter phrase: ";
getline(cin, str1);

// Using islower()
if (!(islower(str1)))
{
cout << "No lowercase character found.";
}
else
{
cout << "Lowercase character found.";
}

/* *************************************** */

// Using find()
string lower = "abcdefghijklmnopqrstuvwxyz";
// string upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

if (!(str1.find(lower)))
{
cout << "No lowercase character found.";
}
else
{
cout << "Lowercase character found.";
}

// Repeat for uppercase letters

return 0;
}

使用 islower() 不起作用,因为它似乎需要一个 char 而不是 string。使用 find(),我的测试输出始终默认为“找到小写字符”。另外,我尝试用 string::find_first_of() 代替 find() 但结果也不好。最后两个方法中的任何一个都不会逐个字符地检查字符串,直到找到 if 语句中定义的小写或大写吗?如果有人可以通过示例为我阐明这一点,我将不胜感激。

最佳答案

你将不得不使用for循环逐个字符地检查字符串

bool hasLower = false;
for(int i = 0; i < strlen(str1); i++) {
if(islower(str1[i]) { //a lowercase char is found
hasLower = true;
break; //stop the for-loop
}
}

关于c++ - 检查字符串中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33931932/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com