在 c++ 中使用字符数组反向
Reverse using char arrays in c++
我想使用以下程序使用数组反转单词,例如将单词中的第一个字符替换为最后一个字符:
void reverseit(char arr[])
{
int len= strlen(arr);
for(int i=0; i<=len/2; i++)
{
char temp=arr[i];
arr[i]=arr[len-i];
arr[len-i]=arr[i];
}
}
int main()
{
char arr[100]={};
cout<<"enter words: ";
cin.get(arr,100);
reverseit(arr);
cout<<arr;
}
似乎没有错误,但是当我在主中输出数组时,没有产生输出,有什么引线吗?
正如@Werner Henze所指出的,reverseit函数实际上将空字节反转为第一个字节。
从反向算法中排除字符串终止的空字节应该可以解决问题。
void reverseit(char arr[])
{
int len= strlen(arr) - 1;
for(int i=0; i<=len/2; i++)
{
char temp=arr[i];
arr[i]=arr[len-i];
arr[len-i]=temp;
}
}
相关文章:
- 指向指向字符数组的指针数组的指针
- 比较字符数组
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 使用无符号字符数组有效存储内存
- 按字符值访问int数组
- 错误:字符数组的初始值设定项太多
- 对字符数组中的元素执行逐位操作
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- C++ 无法在字符数组中使用 for 循环打印字母模式
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- 移动二维数组中的字符
- C++ 传递二维字符数组
- 无法在 C++ 中输入字符数组
- C++ 带结构的数组字符
- 数组字符包含量超出预期
- 读取文件并添加到数组字符
- 如何在Qt中更改或替换数组字符
- 为什么编译器不在参数中传递数组字符 *arr[] 的大小?
- 井字棋数组字符错误
- 分割数组字符