你如何改变数组

how do you change arrays?

本文关键字:改变 数组 何改变      更新时间:2023-10-16

help! 我试图在我的数组中用"''替换"a"和"e",但它一直在替换所有数组。

    for(int x = 0; x < array_length); x++)
    { 
      if(city_name[x] == 'a' || 'e')
        city_name[x] = " ";
    }
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'

首先,循环是错误的。 它包含一个错别字

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] = ' ';
}

考虑到在标头<algorithm>中声明的标准算法std::replace_if可以使用该算法代替循环。例如

std::replace_if( city_name, city_name + array_length,
                 []( char c ) { return c == 'a' || c == 'e'; },
                 ' ' );