字符串逆序

简介: 字符串逆序

[编程题]字符逆序(来自牛客网)


题目:将一个字符串str的内容颠倒过来,并输出。

数据范围:1 ≤ len(str) ≤10000

输入格式 输入一个字符串,可以有空格

输出格式 输出逆序的字符串


示例1:

输入:I am a student

输出:tneduts a ma I


示例2:

输入:nowcoder

输出:redocwon


方案一:函数+数组

代码思路

1.创建一个数组a并初始化

2.把字符串输入到该数组a

3.求该数组的长度

4.函数实现字符逆序

  (1)用left 和 right 定义字符串的开始和末尾(' \0 '的前一个)

  (2)使用while循环,并创建一个暂时变量,用数组交换,并实现逐步输出

代码

void reverse_string(char* a,int len)
{
  char left = 0;
  char right = len - 1;
  while (left < right)
  {
    char temp = a[left];
    a[left] = a[right];
    a[right] = temp;
    left++;
    right--;
  }
}
 
int main()
{
  char a[10000] = { 0 };
  gets(a);
  int len = strlen(a);
  reverse_string(a, len);
  printf("%s\n", a);
  return 0;
}

方案二:指针实现

代码思路

1.创建一个字符数组a并初始化

2.输入字符串到该数组a

3.求字符串长度a

4.使用指针定义该字符串最左端和最右端,同上👆再利用while循环交换再输出

代码

int main()
{
  char a[10000] = { 0 };
  gets(a);
  int len = strlen(a);
  char* left = a;
  char* right = a + len - 1;
  while (left < right)
  {
    char* temp = *left;
    *left = *right;
    *right = temp;
    right--;
    left++;
  }
  printf("%s\n", a);
  return 0;
}

方案三:利用两个数组实现字符串的逆序(最简单)

代码

int main()
{
    char a[10] = { 0 };
    char b[10] = { 0 };
    gets(a);
    int len = strlen(a);
    int i = 0;
    for (i = 0; i <= (len - 1); i++)
    {
        b[i] = a[len - 1 - i];
    }
    printf("%s\n", b);
    return 0;
}

代码解释

目录
相关文章
|
3月前
|
人工智能
数组逆序输出
数组逆序输出。
42 12
|
4月前
|
C语言 Python 容器
将一个数组逆序输出。
将一个数组逆序输出。
38 4
|
8月前
PTA-字符串逆序
字符串逆序
69 1
字符串逆序(递归实现)
字符串逆序(递归实现)
125 0
|
8月前
|
Python
ptthon字符串的逆序输出
字符串的逆序输出
47 0
逆置字符串
逆置字符串
65 0
|
存储 算法 C++
【每日算法Day 89】手动实现字符串转整数(atoi)函数,你会吗?
【每日算法Day 89】手动实现字符串转整数(atoi)函数,你会吗?
|
算法 前端开发 API
字符串看到 ”回文“ 尝试双指针
字符串看到 ”回文“ 尝试双指针
67 0
|
存储 算法 C++
LeetCode(7-整数反转&&8-字符串转换整数 (atoi)&&9-回文数)
LeetCode(7-整数反转&&8-字符串转换整数 (atoi)&&9-回文数)
LeetCode(7-整数反转&&8-字符串转换整数 (atoi)&&9-回文数)
不用strlen()求字符串长度和递归法
由键盘任意输入一个字符串,不用库函数strlen,求它的长度。
530 0
不用strlen()求字符串长度和递归法