c语言编写一个函数 Inverse0,实现将字符数组中的字符串逆序存放的功能。用一个数组实现逆序存放。借助于一个中间变量temp,将数组中首尾对称位置的元素互换。i指向数组首部的元素,从0依次加1变化;j指向数组尾部的元素,从n-1依次减1变化:当变化到问时结束元素互换操作。
时间: 2024-02-20 16:57:56 浏览: 27
好的,可以参考下面的代码实现:
```c
void Inverse0(char str[], int n) {
int i = 0, j = n - 1;
char temp;
while (i < j) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
i++;
j--;
}
}
```
其中,`str` 是待逆序存放的字符数组,`n` 是数组的长度。函数通过一个 `while` 循环,借助中间变量 `temp`,将数组的首尾对称位置的元素互换,最终实现字符串的逆序存放。
需要注意的是,此函数只适用于以 `\0` 结尾的字符串数组,对于非字符串数组可能会出现问题。
相关问题
c语言编写一个函数 Inverse0,实现将字符数组中的字符串逆序存放的功能。用数组a存放逆序存放前的数组元素,用数组b存放逆序存放后的数组元素。
好的,以下是C语言实现的代码:
```c
void Inverse0(char* str) {
char a[1000], b[1000];
int len = strlen(str);
for (int i = 0; i < len; i++) {
a[i] = str[i];
}
for (int i = 0; i < len; i++) {
b[i] = a[len - i - 1];
}
for (int i = 0; i < len; i++) {
str[i] = b[i];
}
}
```
以上代码中,我们先将原始字符串按照顺序存储到数组a中,然后再将数组a中的元素按照相反的顺序存储到数组b中,最后再将数组b中的元素按照顺序存储回原始字符串中,即可实现字符串逆序存放的功能。
请注意,由于我们使用了数组a和数组b,因此需要定义一个足够大的数组来存储字符串,以上代码中我们定义了大小为1000的数组。如果您的字符串比较长,可能需要调整数组的大小。
编写一个函数Inverse( ),实现将长度为10的字符数组中的字符串逆序存放。
好的,以下是 C++ 代码实现:
```cpp
void Inverse(char str[]) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - 1 - i];
str[len - 1 - i] = temp;
}
}
```
使用方法:
```cpp
char str[11] = "abcdefghij";
Inverse(str);
cout << str << endl; // 输出 jihgfedcba
```
该函数接受一个 char 类型的数组作为参数,并将其逆序存放。具体实现方法是使用双指针法,从数组两端开始向中间交换元素,直到两个指针相遇。