编写函数reverse()模拟标准函数strset(),调用形式为replicate(char*st),其作用是颠倒字符串st的顺序,即按与原来相反的顺序排列
时间: 2024-05-02 14:16:18 浏览: 16
以下是实现该函数的C++代码:
```cpp
void reverse(char* st) {
int len = strlen(st);
for (int i = 0; i < len / 2; i++) {
char temp = st[i];
st[i] = st[len - i - 1];
st[len - i - 1] = temp;
}
}
```
该函数接受一个字符指针参数指向一个字符串,使用strlen函数获取字符串的长度,然后将字符串的第i个字符与第len-i-1个字符交换,i从0到len/2-1循环即可。最后得到的字符串就是原字符串的反转。
相关问题
编写函数reverse(char *s)的倒序递归程序,使字符串s倒序
以下是一个倒序递归程序的示例:
void reverse(char *s) {
if (*s) {
reverse(s + 1);
printf("%c", *s);
}
}
这个程序会递归地调用自己,直到字符串s的末尾,然后从末尾开始打印字符,实现字符串倒序输出。
c++编写函数,通过指针一个将字符串反向。 函数首部为: void ReverseString(char *s)
下面是一个简单的 C++ 函数,通过指针将字符串反向:
```c++
#include <iostream>
#include <cstring>
void ReverseString(char* s) {
int len = strlen(s);
int i = 0, j = len - 1;
while (i < j) {
std::swap(s[i], s[j]);
i++;
j--;
}
}
int main() {
char s[] = "hello, world";
std::cout << "Before reverse: " << s << std::endl;
ReverseString(s);
std::cout << "After reverse: " << s << std::endl;
return 0;
}
```
函数的主要思路是使用两个指针 `i` 和 `j`,分别指向字符串的开头和结尾。然后不断交换字符,直到 `i` 大于等于 `j`。这个函数可以很好地处理包括空字符串在内的任何字符串。