字符串反转(指针实现)
…
…
写在前面的声明:
为什么要现在补这道题呢,,,是因为:
我一开始用csdn写博客主要是为了记录和总结一下自己觉得比较麻烦的题,其他一些题就没有发上来。
一则我这个人有点佛系,懒。二则我以为网上都有解析不缺我一个。
现在也很开心能够帮助到一些同学。以后如果发现有不太会,网上又找不到的题可以私信我(不过尽早一些…),我会尽量补档。
看不明白的代码可以多调试,看看怎么运行的。
另,我不是大佬…
…
…
…
…
【问题描述】
从键盘输入一个长度不超过200的字符串,将该字符串反转后输出。
【输入形式】
输入为一行一个字符串
【输出形式】
输出反转后的字符串
【样例输入】
student
【样例输出】
tneduts
#include <iostream>
#include <cstring>
using namespace std;
void reverseStr(char *s);
int main()
{
char str[201];
gets(str);
reverseStr(str);
puts(str);
return 0;
}
void reverseStr(char *s)
{
char *p=s,*q=s;
while(*q)
{
/* 将指针q移动到字符串末尾 */
q++;
}
/* 指针q指向最后一个字符 */
while(p<q) /* 将指针p、q所指向位置的字符进行交换,之后指针p、q相向移动 */
{
if (*q=='\0')
q--;
char tp=' ';
tp=*p;
*p=*q;
*q=tp;
p++;
q--;
}
}