pta交换字符

pta 交换字符

请编写函数,交换两个字符。

函数原型

void ChrSwap(char *x, char *y);

说明:x 和 y 为指示两个字符变量的指针,函数交换两个指针所指字符变量的值。

裁判程序

#include <stdio.h>

void ChrSwap(char *x, char *y);

int main()
{
    char a, b;
    scanf("%c %c", &a, &b);
    ChrSwap(&a, &b);
    printf("%c %c\n", a, b);
    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例

# $

输出样例

$ #
void ChrSwap(char *x, char *y)
{
    int temp;
    
    temp = *x, *x = *y, *y = temp;
}
### PTA平台字符串逆序算法实现 在PTA平台上,字符串逆序是一个常见的编程练习题。以下是几种不同的方法来实现字符串逆序功能。 #### 方法一:基于`while`循环的双指针交换法 此方法通过遍历字符串并记录其长度,随后利用两个索引变量分别指向首尾字符进行逐次交换[^1]。 ```c void reverseString(char* p) { char temp; int i = 0, j; // 计算字符串长度 while (p[i] != '\0') i++; j = i - 1; // 双指针交换字符 for (i = 0; i < j; i++, j--) { temp = p[i]; p[i] = p[j]; p[j] = temp; } } ``` #### 方法二:基于`for`循环的单向扫描法 该方法同样计算字符串长度后,采用单一循环完成字符互换操作[^2]。对于奇偶长度的情况进行了区分处理,但实际上可以通过简化逻辑统一处理。 ```c void reverseString(char *p) { int len = 0, i; char temp; // 获取字符串长度 for (; p[len] != '\0'; len++); // 字符串反转 for (i = 0; i < len / 2; i++) { temp = p[i]; p[i] = p[len - 1 - i]; p[len - 1 - i] = temp; } } ``` #### 方法三:直接打印逆序结果而不修改原字符串 如果不需要改变原始输入数据,则可以直接从末端向前读取字符逐一输出[^3]。 ```c #include <stdio.h> #include <string.h> int main() { char str[100], *p; // 输入字符串 scanf("%s", str); // 初始化指针到字符串末尾 p = str + strlen(str) - 1; // 输出逆序后的字符串 while (p >= str) { putchar(*p--); } return 0; } ``` 以上三种方式均能够有效解决PTA上的字符串逆序问题,具体选用哪种取决于实际需求以及题目约束条件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unagi -_-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值