首页 > 试题广场 >

字符逆序

[编程题]字符逆序
  • 热度指数:958 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
将一个字符串str的内容颠倒过来,并输出。
如:输入“I am a student”,输出“tneduts a ma I”。
保证字符串长度不超过100。

 


输入描述:
输入一个仅包含空格和英文字母的字符串str,长度不超过10000。


输出描述:
输出逆序的字符串。
示例1

输入

I am a student

输出

tneduts a ma I
#include <stdio.h>
#include<assert.h>
void revserse(char* left, char* right)
{
    assert(left && right);//检测不为空指针
    while (left < right) //设置限定条件,最里面的两个字符交换后停止
    {
        char tmp = *left;
        *left = *right;
        *right = tmp;
        left++;
        right--;
    }
}
int main() {
    char str[10000]="";
    gets(str);//空字符正常接收
    int len = strlen (str);
    revserse(str,str+len-1);
    printf("%s\n",str);
    return 0;
}
发表于 2023-10-12 09:06:42 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别

        String str = in.nextLine();
        int length = str.length();
        char[] strNew = new char[length];

        int index = 0;
        for(int i = 0; i < length; i++){
            index = length - i - 1;
            strNew[index] = str.charAt(i);
        }

        System.out.println(strNew);

    }
}

发表于 2025-03-08 20:46:44 回复(0)
importjava.util.Scanner;
 
// 注意类名必须为 Main, 不要有任何 package xxx 信息
publicclassMain {
    publicstaticvoidmain(String[] args) {
        Scanner in = newScanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while(in.hasNextLine()) { // 注意 while 处理多个 case
            StringBuilder sb = newStringBuilder(in.nextLine());
            System.out.println(sb.reverse());
        }
    }
}
发表于 2024-04-12 17:13:18 回复(2)
#include <iostream>
using namespace std;
 
int main() {
    string str;
    getline(cin, str);
    for(int i = str.length() - 1; i >=0; i--)
        cout << str[i];
    cout << endl;
    return 0;
}


编辑于 2023-12-07 21:38:38 回复(0)
为什么题目说的字符串不超过100个,然后用超过100 字符去测试
发表于 2023-10-16 21:44:27 回复(0)
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	inputReader := bufio.NewReader(os.Stdin)
	input, _ := inputReader.ReadString('\n')
	s := make([]byte, 0)
	var n int

	for i := len(input) - 1; i >= 0; i-- {
		s = append(s, input[i])
		n++
	}
	fmt.Print(string(s))
}
为什么说这个代码是错的
发表于 2023-09-18 20:41:59 回复(0)