如何将元音字母替换为字符
How to replace vowel letters with a character?
如何将元音字母替换为字符,例如输入:asd 输出:.sd,所以我们用"."替换元音字母,我尝试这样做,但我不知道为什么,这是我的代码:
#include <iostream>
using namespace std;
int main () {
string s;
cin>>s;
if (s=="a")
s='.';
if (s=="e")
s='.';
if (s=="u")
s='.';
if (s=="o")
s='.';
if (s=="i")
s='.';
cout<<s<<endl;
}
为什么什么都没有改变?输入=输出?
你有问题。当您读取字符串"s"时,它等于"asd"。因此,当它在条件(s=="a"(中进行比较时,它是假的。您必须逐个字符进行比较。我分享一个可能的解决方案:
#include <iostream>
int main()
{
std::string s;
std::cin >> s;
for (char& c: s)
{
if (c == 'a' || c=='e' || c == 'i' || c == 'o' || c == 'u')
c = '.';
}
std::cout << s << std::endl;
}
如果字符
是元音,您可以使用std::replace_if
替换字符,使用 std::string::find
轻松确定字符是否是元音,即:
std::string s = "abcvaoi";
std::replace_if( s.begin( ), s.end( ), [] ( const char c ) {
return std::string( "aeiou" ).find( c ) != std::string::npos;
}, '.');
为了简单起见,您可以使用开关大小写和 for 循环。
using namespace std;
#include<iostream>
int main()
{
string a;
cin>>a;
for(int i=0;a[i]!=' ';i++)
{
switch (a[i])
{
case 'a':a[i]='.';
break;
case 'e':a[i]='.';
break;
case 'i':a[i]='.';
break;
case 'o':a[i]='.';
break;
case 'u':a[i]='.';
break;
}
}
cout<<a;
}
相关文章:
- 如何用转义符替换字符串中的所有特殊字符
- 删除/替换C++字符串中的多字符 (ÿû)
- 生成随机.txt文件,10行,10列。充满随机:"*"、"#"、"@"。然后将随机字符替换为'P'
- 用 X 替换字符串中的字符C++练习
- 替换 2D 数组中的字符
- 替换字符阵列C 中的字符
- 如何有效地用不同的整数元素替换字符字符串的元素
- C++字符数组查找/替换字符
- 如何使用C++快速就地替换字符
- 通过存储在向量中的字符串的字符迭代以替换字符C
- 如何在C++中读取带有ifstream的替换字符?(ASCII 中的 SUB)
- 替换字符,如替换全部(字符串,开始,结束,"_","-")
- 搜索和替换字符数组 c++ 中出现的所有字符串
- 在字符指针中用内存移动替换字符
- 函数,用于查找和替换字符数组(流)c++中的字符串
- 查找并替换字符数组中的单词
- 用字符串中的 int "替换"字符
- 替换字符数组中的单词
- 替换字符*中的字符
- C++:替换字符时出错