在 c++ 中使用字符数组反向

Reverse using char arrays in c++

本文关键字:数组 字符 c++      更新时间:2023-10-16

我想使用以下程序使用数组反转单词,例如将单词中的第一个字符替换为最后一个字符:

    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;
    }
}