0.字符串定义
C语言char类型
// char define str
char str[] = "hello";
int len = strlen(str);
char str_rev[len+1];
C++ string类型
//string define str
string str = "hello";
int len = str.size();
string str_rev;
1 使用C语言cstring自带的翻转函数
#include<cstring>
#include<stdio.h>
......
// char define str
char str[] = "hello"; //会自动在字符串末尾加'\0'
int len = strlen(str);
char str_rev[len+1];
// use strrev() in cstring
strrev(str);
printf("%s", str_rev);
2 循环赋值
2.reverse directly
for(int i=0; i<len; i++){
// str_rev[len-i-1] = str[i]; //C
str_rev.push_back(str[len-i-1]); //C++
}
3 使用栈 (c++ stack)
stack<char> str_stack;
for(int i=0; i<len; i++){
str_stack.push(str[i]);
}
for(int i=0; i<len; i++){
str_rev[i] = str_stack.top();
str_stack.pop();
}
输出
cout<< str_rev<<endl;
// printf 不能打印c++ string
printf("%s", str_rev);