在c++中从char中获取元音
get vowels from char in C++
#include <iostream>
using namespace std;
char a[20];
int main()
{
cin >> a;
}
如果我写a="home",我想把元音("o"answers"e")替换成大写字母("o"answers"e")。我怎么做呢?
编辑:你的回答很有帮助。我这样做了:
cin >> a;
for (int i = 0; a[i] != ' ' && i <= 20; i++)
{
if (a[i] == 'a')
a[i] = 'A';
if (a[i] == 'e')
a[i] = 'eE';
if (a[i] == 'i')
a[i] = 'iI';
if (a[i] == 'o')
a[i] = 'oO';
if (a[i] == 'u')
a[i] = 'uU';
}
我想把例如"e"改成"eE",但它不起作用
- 写一个函数来告诉你某物是否是元音。这可以像循环遍历数组或使用std::set一样简单。
- 遍历字符并将元音替换为
toupper
的返回值。
作为次要注意事项,您可能希望使用std::string
而不是char[]
。
基本上,您可以这样做:
#include <iostream>
using namespace std;
char a[20];
int main(){
cin >> a;
for (int i = 0; a[i] != ' ' && i < 20; i++){
if (a[i] == 'a' || a[i] == 'e' || a[i] == 'i'|| a[i] == 'o'|| a[i] == 'u'){
a[i] = a[i] + 'A' - 'a';
}
}
cout << a;
}
程序迭代字符串中的每个字符,并将其与所有五个元音进行比较。如果它发现它是一个元音,它就把它变成大写。
行a[i] = a[i] + 'A' - 'a';
似乎很难理解,但事实并非如此。在编码系统中,每个字符实际上都是一个整数。在大多数编码系统中,一个字母与其对应的大写字母之间的差异是由(' a' - 'a')给出的常数。因此,通过向任何字符添加('A' - 'A'),可以有效地将其转换为大写。
//inside the loop body
cin >> a;
while(a[i])
if(a[i] == 'a' || a[i] == 'e' || a[i] == 'i' || a[i]== 'o' || a[i]=='u')
{
a[i]=toupper(a[i]);
}
相关文章:
- 是否可以在C++中获取 CHAR 的有效十六进制地址?
- 获取"rw_ssid"中成员"长度"的错误请求,该成员属于非类类型"char*"
- 获取未知分段错误"(地址)在 std::__cxx11::basic_string<char, std::char_traits<char>,..., std::分配器<cha
- 无法获取已填充堆栈<char>的顶部元素
- 为什么要使用引用来获取 *char?当我们使用指针时,不使用引用不是更好吗?
- 从函数获取 char* 后的条件 gdb 断点
- 如何使用CIN将输入整数值获取到char类型变量中
- 使用安全模式从DLL(通过(INTPTR)参数传递到该函数)获取char **
- (c#)从c dll获取char **时的accessViolationException
- 在不复制的情况下从Ostream中获取char*
- 如何在C中获取char阵列的第一个X元素?提升效果是否有改进的方法
- 从返回int的函数中获取char的正确方法
- 从另一个函数中获取char[]的好方法.用c/c++开始思考
- 从txt文件中获取char并在标准输出C++上进行编写
- 如何获取char数组的列数
- 获取char输入,检查它是否有效,如果无效,清除整个输入
- 如何获取char数组中元素的地址
- Fopen在c++中获取char *错误
- 从 std::string & std::wstring 中获取 char 整数值
- 为什么 'std::string' 的赋值运算符按值而不是 'const' 引用来获取 'char'?