帮助!我试图在我的数组中用''替换'a'和'e',但它不断替换所有的数组。
for(int x = 0; x < array_length); x++)
{
if(city_name[x] == 'a' || 'e')
city_name[x] = " ";
}
答案 0 :(得分:4)
if(city_name[x] == 'a' || 'e')
应该是
if(city_name[x] == 'a' || city_name[x] == 'e')
您的代码等同于
if( ( city_name[x] == 'a' ) || 'e')
执行city_name[x] == 'a'
,然后检查result of that statement || 'e'
答案 1 :(得分:1)
首先,循环是错误的。它包含一个拼写错误
for(int x = 0; x < array_length); x++)
^^^
删除多余的括号。
也是这种情况
city_name[x] == 'a' || 'e'
始终等于true
,因为它等同于
( city_name[x] == 'a' ) || 'e'
而不是字符串文字" "
,你必须使用字符文字' '
正确的循环可能看起来像
for ( int i = 0; i < array_length; i++ )
{
if ( city_name[i] == 'a' || city_name[i] == 'e' ) city_name[i] = ' ';
}
考虑到标头std::replace_if
中声明的标准算法<algorithm>
可用于代替循环。例如
std::replace_if( city_name, city_name + array_length,
[]( char c ) { return c == 'a' || c == 'e'; },
' ' );