c语言编程:使用指针实现字符串逆序输出
时间: 2024-03-02 18:53:15 浏览: 52
可以用指针来实现字符串逆序输出,代码如下:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
int length = strlen(str);
char *begin = str;
char *end = str + length - 1;
while (begin < end) {
char temp = *begin;
*begin = *end;
*end = temp;
begin++;
end--;
}
}
int main() {
char str[] = "Hello, world!";
printf("Original string: %s\n", str);
reverse(str);
printf("Reversed string: %s\n", str);
return 0;
}
```
这个程序中,我们定义了一个 `reverse` 函数,它接受一个指向字符串的指针。这个函数首先计算字符串的长度,然后定义了两个指针,一个指向字符串的开头,一个指向字符串的结尾。接下来,我们使用一个循环来交换开头和结尾的字符,直到两个指针相遇为止。最后,我们在 `main` 函数中调用 `reverse` 函数,并将结果输出到控制台上。
相关问题
用c语言编程实现字符串的逆序输出。
可以使用C语言中的指针来实现字符串的逆序输出,代码如下:
#include <stdio.h>
#include <string.h>
// 函数声明
void reverse(char *str);
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
reverse(str);
return 0;
}
// 函数定义
void reverse(char *str) {
int len = strlen(str);
char *p, *q, temp;
p = str;
q = str + len - 1;
while(p < q) {
temp = *p;
*p = *q;
*q = temp;
p++;
q--;
}
printf("逆序输出的字符串为:%s\n", str);
}
用c语言实现:输入一个字符串,使用函数将它逆序存放
好的,我们可以使用指针来实现字符串的逆序存放。具体的实现代码如下:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str);
int main()
{
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
reverse(str);
printf("字符串逆序存放后为:%s\n", str);
return 0;
}
void reverse(char *str)
{
int len = strlen(str);
char *p1 = str; // 指向字符串首地址
char *p2 = str + len - 1; // 指向字符串末尾
char temp;
while (p1 < p2) {
temp = *p1;
*p1 = *p2;
*p2 = temp;
p1++;
p2--;
}
}
```
在这个程序中,我们首先使用 `scanf()` 函数从用户输入中读取一个字符串,并将其存储在字符数组 `str` 中。然后,我们调用 `reverse()` 函数来将字符串逆序存放。在 `reverse()` 函数中,我们使用指针 `p1` 和 `p2` 分别指向字符串的首地址和末尾地址。然后,我们交换 `p1` 和 `p2` 指向的字符,并将指针向字符串中间移动,直到 `p1` 和 `p2` 相遇为止。最终,字符串就被逆序存放了。