你如何改变数组
how do you change arrays?
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'; },
' ' );
相关文章:
- 为什么 c++ 动态数组的大小没有改变?
- 如果你有一个固定大小的数组,你需要遍历它!n次,使用二进制搜索如何改变时间复杂性
- 使用(非对象)API 时改变表数组C++而不重新创建整个平面缓冲区
- 我的c ++数组值不想改变,它输出无限循环
- 如何在不改变原始数组的情况下将数组作为参数传递
- 为什么 Memcpy 会改变字符串数组
- 为什么结构数组的内存集会改变程序行为
- 函数更改后指针的显示值与数组 C 一起改变
- 为什么Serial.println()会改变函数内部数组的值
- 在Visual c++中,数组的大小在传递给函数时自动改变
- 按值传递时改变整型数组的大小
- 如何改变xyz顺序时,使用一个扁平的3D数组
- 改变静态数组的大小
- 如何使一个函数永久地改变全局数组
- 2D数组改变了多个值,而只有一个值改变了
- 在不改变索引顺序的情况下从动态数组中删除元素
- Cuda内核不改变输入数组
- 删除constexpr会改变gcc上数组的值
- 在另一个函数内部改变指针数组所包含的地址
- 将向量数组作为函数参数传递(值不会改变)