C++实现字符串数组作为函数的参数的反序输出

本文介绍了一个使用C++实现的字符数组逆序函数,通过交换字符数组的首尾元素来完成逆序操作。
#include<iostream>
using namespace std;
const int N=10;
char inverse(char ss[],int n);//函数声明
int main()
{
char s[N];
for(int i=0;i<N;i++)
cin>>s[i];
inverse(s,N);           //函数调用
for(int i=0;i<N;i++)
cout<<s[i]<<' ';
cout<<endl;
}
char inverse(char ss[],int n)//函数实现
{
for(int i=0;i<n/2;i++)
{
swap(ss[i],ss[n-1-i]);
}
}

以下为几种不同语言编写的函数实现字符串反序存放,并在主函数中输入输出字符串的代码示例。 ### C 语言实现 ```c #include <stdio.h> #include <string.h> // 定义一个函数,用于反转字符串 void inverse(char str[]) { int i, j; char temp; // 使用双指针法交换字符位置 for (i = 0, j = strlen(str) - 1; i < j; i++, j--) { temp = str[i]; str[i] = str[j]; str[j] = temp; } } // 主函数 int main() { char str[20]; // 从标准输入读取一行字符串 gets(str); // 调用反转函数 inverse(str); // 输出反转后的字符串 for (int i = 0; i < strlen(str); i++) { printf("%c", str[i]); } printf("\n"); return 0; } ``` 这种 C 语言实现方式是定义了 `inverse` 函数来进行字符串反转操作,使用双指针 `i` 和 `j` 从字符串两端向中间移动,并交换对应位置字符实现反序化,主函数中读取输入字符串并调用该函数输出结果 [^3]。 ### 另一种 C 语言实现 ```c #include <stdio.h> #include <string.h> void reverse_string(char str[]) { int i,j,length; char str_reverse[1000]; length = strlen(str); for(i = 0, j = length - 1; j >= 0; i++, j--) str_reverse[i] = str[j]; str_reverse[i] = '\0'; strcpy(str, str_reverse); } int main() { char string[1000]; printf("Please enter a string: "); gets(string); reverse_string(string); printf("The sorted string is: %s\n",string); return 0; } ``` 此实现通过 `reverse_string` 函数,借助一个临时字符串 `str_reverse` 辅助存储从原字符串末尾开始的字符,最后将其复制回原字符串实现反转操作,主函数负责输入输出 [^4]。 ### C++ 语言实现 ```cpp #include <iostream> #include <cstring> using namespace std; // 定义反转函数 void reverse(char s[], int n) { char c[n]; for(int i = 0; i < n; i++) c[i] = s[i]; for(int i = 0; i < n; i++) s[i] = c[n - i - 1]; } // 主函数 int main() { char s[10000]; int n; cout << "Please input a string:"; cin.getline(s, 10000); n = strlen(s); // 调用反转函数 reverse(s, n); cout << "After reverse:"; cout << s << endl; return 0; } ``` C++ 实现中,`reverse` 函数先将原字符串内容复制到临时字符数组 `c` 中,然后再将 `c` 中字符按逆序赋值回原字符串 `s`,主函数负责获取输入、调用函数输出结果 [^5]。 ### 再一种 C++ 实现 ```cpp #include <bits/stdc++.h> using namespace std; int main() { char a[1005]; // 输入字符串 cin >> a; int len; len = strlen(a); // 逆序输出字符串 for(int i = len - 1; i >= 0; i--) { cout << a[i]; } cout << endl; return 0; } ``` 该 C++ 实现没有单独定义反转函数,而是直接在主函数中读取字符串,然后通过 `for` 循环逆序输出字符串 [^2]。 ### 又一种 C 语言实现 ```c #include <stdio.h> #include <string.h> int main() { char a[20]; // 输入字符串 scanf("%s", a); for(int i = strlen(a) - 1; i >= 0; i--) printf("%c", a[i]); printf("\n"); return 0; } ``` 此 C 语言实现同样未定义反转函数,在主函数中用 `scanf` 输入字符串,再通过 `for` 循环逆序输出 [^1]。 ### 还有一种 C 语言实现 ```c #include <stdio.h> #include <string.h> int main() { char a[20]; // 输入字符串 gets(a); for(int i = strlen(a) - 1; i >= 0; i--) printf("%c", a[i]); printf("\n"); return 0; } ``` 该实现也是在主函数中操作,使用 `gets` 输入字符串,然后逆序输出 [^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值