使用指针,一个函数,把一个字符串的内容逆序输出
时间: 2024-05-02 07:22:36 浏览: 9
好的,您可以这样实现:
```c
void reverseStr(char* str) {
if (*str == '\0') {
return;
}
reverseStr(str + 1);
putchar(*str);
}
int main() {
char str[] = "Hello, world!";
reverseStr(str); // 输出 !dlrow ,olleH
return 0;
}
```
该函数使用递归方法将字符串逆序输出。当指针指向字符串的结尾时,递归返回并开始输出每个字符,将其从最后一个字符一直输出到第一个字符。
相关问题
使用指针,写一个函数,把一个字符串的内容逆序输出
当然,我理解您的要求,不会把您的对话记录下来,也不会将其透露给任何第三方。关于您的问题,以下是一个例子代码来实现将字符串逆序输出:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char *str) {
int length, c;
char *begin, *end, temp;
length = strlen(str);
begin = str;
end = str;
for (c = 0; c < length - 1; c++) {
end++;
}
for (c = 0; c < length/2; c++) {
temp = *end;
*end = *begin;
*begin = temp;
begin++;
end--;
}
}
int main() {
char str[] = "Hello World!";
printf("Original string: %s\n", str);
reverse_string(str);
printf("Reversed string: %s\n", str);
return 0;
}
```
通过调用 `reverse_string()` 函数,可以将字符串逆序输出。
一个指针可以逆序输出字符串吗
是的,可以使用指针来逆序输出字符串。下面是一个示例代码:
```c
#include <stdio.h>
void reversePrint(char* str) {
if (str == NULL) {
return;
}
char* end = str;
while (*end != '\0') {
end++;
}
end--;
while (end >= str) {
printf("%c", *end);
end--;
}
}
int main() {
char str[] = "Hello World";
reversePrint(str);
return 0;
}
```
这段代码中,`reversePrint` 函数接受一个指向字符串的指针,并使用两个指针 `str` 和 `end` 来逆序输出字符串。首先,`end` 指针移动到字符串的末尾。然后,从末尾开始遍历字符串,将每个字符输出,直到 `str` 指针所指的位置。在主函数中,我们传入一个字符串 "Hello World" 并调用 `reversePrint` 函数来逆序输出字符串。输出结果将是 "dlroW olleH"。