c 语言将字符串逆置pta
时间: 2023-06-22 16:20:26 浏览: 136
要将字符串逆置,可以使用C语言中的指针和循环来实现。具体步骤如下:
1. 定义一个字符数组,存储待逆置的字符串。
2. 定义两个指针,分别指向字符串的头和尾。
3. 使用循环交换头指针和尾指针所指向的字符,直到头指针大于等于尾指针为止。
4. 输出逆置后的字符串。
下面是代码示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
int len = strlen(str);
char *p1 = str;
char *p2 = str + len - 1;
while (p1 < p2) {
char temp = *p1;
*p1 = *p2;
*p2 = temp;
p1++;
p2--;
}
printf("逆置后的字符串为:%s\n", str);
return 0;
}
```
注意,这里使用了指针的加减运算,可以使指针移动到相应的位置。同时需要注意数组下标是从0开始的,所以尾指针需要减1。
相关问题
c语言将一个指定字符串逆置
可以使用一个指针和一个循环来实现字符串的逆置。具体的实现方法如下:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
int len = strlen(str);
char *p1 = str, *p2 = str + len - 1;
while (p1 < p2) {
char temp = *p1;
*p1 = *p2;
*p2 = temp;
p1++;
p2--;
}
}
int main() {
char str[] = "hello world";
printf("Original string: %s\n", str);
reverse(str);
printf("Reversed string: %s\n", str);
return 0;
}
```
在上面的代码中,我们定义了一个函数 `reverse()`,它接收一个指向字符串的指针。在函数体中,我们首先计算出字符串的长度,并定义两个指针 `p1` 和 `p2` 指向字符串的首尾位置。然后,我们使用一个循环来不断交换两个指针所指向的字符,直到 `p1` 和 `p2` 相遇为止。最后,我们在主函数中调用 `reverse()` 函数,并输出逆置后的字符串。
递归函数将字符串逆置
递归函数可以将字符串逆置。下面是一个C语言的例子:
```c
#include <stdio.h>
#include <assert.h>
void reverse(char *s) {
assert(s);
if(*s == '\0') {
return;
} else {
reverse(&s[1]);
putchar(s[0]);
}
}
int main() {
char str[32] = {0};
printf("Please enter string:");
gets(str);
printf("Final:");
reverse(str);
printf("\n");
return 0;
}
```
这个例子中,我们定义了一个递归函数`reverse`,它接受一个字符指针作为参数。函数首先判断当前字符是否为`\0`,如果是,则递归结束;否则,递归调用`reverse`函数,并将指针向后移动一位,然后打印当前字符。通过不断递归调用,最终实现了字符串的逆置。
阅读全文