题目要求如下:
由于输入的字符串中可能有空格,因此不能使用scanf进行读取,需要使用gets函数进行读取。
由于是逆置,因此初始化1个相同长度的char字节数组,将逆序的字符逐一进行赋值即可。
下面是实现的代码:
#include <stdio.h>
#include <string.h>
int main() {
char s[201] = {0};
while (gets(s)) {
int length = strlen(s);
char b[201] = {0};
for (int i = 0; i < length; ++i) {
b[i] = s[length-1-i];
}
puts(b);
}
return 0;
}
最后是通过后的结果:

对应C++的实现为:
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
char arr[201] = {0};
while (cin.get(arr, 201)) {
//读取换行符号,否则程序将结束
cin.get();
reverse(arr, arr+strlen(arr));
cout << arr << endl;
}
return 0;
}
这里使用cin.get进行获取,因为gets函数在C++ 11中已经不能再使用。
对应的结果如下:

由于cin的比较慢,因此耗费时间较多。
134

被折叠的 条评论
为什么被折叠?



