反转字符串

来源:互联网 发布:centos快照 编辑:程序博客网 时间:2024/06/06 00:49

反转字符串

s = "123456"打印出654321

这里面有2种想法:

  1. 改变字符串s = “654321”,直接打印
  2. 逆序打印字符串,不改变字符串

这里我都简单实现了一下:

void reverse_c(char* str) //c语言实现{    if (*str == '\0')        return;    reverse_c(str+1);    putchar(*str);}void reverse_cpp(const string& s) //c++实现{    int size = s.size();    if (size == 0)        return;    else if (size == 1)        cout << s[0];    else    {        reverse_cpp(s.substr(1));        cout << s[0];    }}
下面是改变字符串void change_str(char* str) //循环{    int left = 0;    int right = strlen(str) - 1;    while (left < right)    {        swap(str[left++], str[right--]);    }}void change_str_r(char* str) //递归{    int size = strlen(str);    if (size == 0)        return;    else if (size == 1)        return;    else    {        char tmp = str[0];        str[0] = str[size-1];        str[size-1] = '\0';        change_str_r(str+1);        str[size-1] = tmp;    }}
原创粉丝点击