字符串处理之字符串反转
1.简单的按照反序输出字符串,并没有对字符串内容进行处理!
//C风格
#include<stdio.h>
#include<string.h>
#define MAX 100
char a[MAX];
int main() {
int i;
while(~scanf("%s",a))
{
for( i=strlen(a)-1; i>=0; i--)
{
printf("%c",a[i]);
}
printf("\n");
}
return 0;
}
//C++风格
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
cin >> str;
for (int i = str.length() - 1; i >= 0; i--)
cout << str[i];
cout << endl;
system("pause");
return 0;
}
2.使用库函数reverse进行反转操作
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main() {
string str;
cin >> str;
reverse(str.begin(), str.end());
cout << str << endl;
system("pause");
return 0;
}
3.自己实现字符串反转算法,双指针法,头尾两两字符进行交换,然后向内方向移动两个指针
#include <stdio.h>
#include <string.h>
int main(void) {
char buf[1024];
scanf("%[^\n]", buf);
int l = strlen(buf);
for (int i = 0; i < l/2; i++) {
char t = buf[i];
buf[i] = buf[l - 1 - i];
buf[l - 1 - i] = t;
}
printf("%s", buf);
printf("\n");
return 0;
}