题目
题目收获
很简单的一道题,但是还是有收获的,我发现我连scanf的字符串输入都忘记咋用了。。。。。我一开始写的
#include <iostream>
#include <cstring>
using namespace std;
void deserve(string &str){
int n = str.size();
int Size = n/2;
for(int i=0;i<Size;i++){
swap(str[i],str[n-1-i]);
}
}
int main(){
string str;
while(scanf("%s",&str)!=EOF){
deserve(str);
printf("%s",str);
}
return 0;
}
结果发现咋搞都编译错误,查别人的博客发现别人和自己一样,最后就问了chat果然是自己记错了。。。。。。
#include <iostream>
#include <cstring>
using namespace std;
void reverse(char *str) {
int n = strlen(str);
int Size = n / 2;
for (int i = 0; i < Size; i++) {
swap(str[i], str[n - 1 - i]);
}
}
int main() {
char str[100]; // Assuming a maximum length of 100 characters
//输入不需要&这个符号
while (scanf("%s", str) != EOF) {
reverse(str);
printf("%s ", str);
}
return 0;
}
好吧,哈哈哈哈哈。
AC代码
#include <iostream>
#include <cstring>
using namespace std;
void deserve(string &str){
int n = str.size();
int Size = n/2;
for(int i=0;i<Size;i++){
swap(str[i],str[n-1-i]);
}
}
int main(){
string str;
while(cin>>str){
deserve(str);
cout<<str<<endl;
}
return 0;
}
事实证明scanf和printf是要比cin和cout快的。