读取一个字符串,字符串可能含有空格,将字符串逆转,原来的字符串与逆转后字符串相同,输出0,原字符串小于逆转后字符串输出-1,大于逆转后字符串输出1。例如输入 hello,逆转后的字符串为 olleh,因为hello 小于 olleh,所以输出-1
时间: 2023-05-13 11:04:53 浏览: 114
以下是一个可能的解决方案:
```
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string s;
getline(cin, s); // 读取含有空格的字符串
string r = s; // 复制一份原字符串
reverse(r.begin(), r.end()); // 将复制的字符串逆转
if (s == r) {
cout << 0 << endl; // 原字符串与逆转后字符串相同
} else if (s < r) {
cout << -1 << endl; // 原字符串小于逆转后字符串
} else {
cout << 1 << endl; // 原字符串大于逆转后字符串
}
return 0;
}
```
这个程序首先读取一个含有空格的字符串,然后复制一份原字符串并将其逆转。接着,它比较原字符串和逆转后字符串的大小,并输出相应的结果。如果原字符串和逆转后字符串相同,则输出0;如果原字符串小于逆转后字符串,则输出-1;如果原字符串大于逆转后字符串,则输出1。
注意,这个程序假设输入的字符串不包含换行符。如果输入的字符串可能包含换行符,可以使用 `cin` 代替 `getline`,但需要注意 `cin` 会忽略空格。
相关问题
Java一次性读取3个字符串并用空格分开
在 Java 中,可以使用 Scanner 类来读取字符串。下面是一个例子,展示了如何一次性读取三个字符串并用空格分开:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s1 = sc.next();
String s2 = sc.next();
String s3 = sc.next();
System.out.println(s1 + " " + s2 + " " + s3);
}
}
```
在这个例子中,我们使用了 Scanner 类的 next() 方法来读取字符串。这个方法会读取到第一个空格,并返回从开始到空格之间的字符串。我们调用了三次 next() 方法,分别读取了三个字符串。最后,我们使用了字符串拼接的方式,将这三个字符串用空格分开并输出到控制台。
从键盘读取一个字符串,删除其中数字字符,然后输出。
可以使用Python中的字符串操作来实现删除字符串中的数字字符,具体代码如下:
```python
input_str = input("请输入字符串:") # 从键盘读取字符串
output_str = ''.join([c for c in input_str if not c.isdigit()]) # 删除数字字符
print(output_str) # 输出删除数字字符后的字符串
```
解释:
1. `input()`函数用于从键盘读取字符串,并将读取到的字符串赋值给变量`input_str`。
2. 字符串操作`''.join()`用于将一个列表中的元素拼接成一个字符串。
3. 列表推导式`[c for c in input_str if not c.isdigit()]`用于遍历字符串中的每一个字符,如果该字符不是数字字符,则将其加入到一个列表中,最后将这个列表中的元素拼接成一个字符串。这样就实现了删除字符串中的数字字符的功能。
4. 最后使用`print()`函数将删除数字字符后的字符串输出到屏幕上。