思维都很简单,但三个列子运行时间空间不一样。
这也是一道面试题,字符串逆序输出方法众多 这里给出三种解答,第一种是标准答案,算法非常精炼!
方法1:
#include
#include
int main(void)
{
}
str[i]^=str[j]^=str[i]^=str[j];
上面这步,非常精炼 虽然只有一行式子,却完成了前后的交换
解析:设
交换前后两个字符串元素的程序也可改写为以下程序:
for(i=0,length=strlen(str);i<length/2;i++)
{
char c=str[i];
str[i]=str[length-1-i];
str[length-1-i]=c;
}
方法2:
//字符串倒序排列
#include
#include
void conv(char *);
int main(void)
{
}
void conv(char *s)
{
}
方法3:
//直接逆序输出
#include
#include
void conv(char *);
int main(void)
{
}
void conv(char *s)
{
}