读取一个字符串,字符串可能含有空格,将字符串逆转,原来的字符串与逆转后字符串相同,输出0,原字符串小于逆转后字符串输出-1,大于逆转后字符串输出1。例如输入 hello,逆转后的字符串为 olleh,因为hello 小于 olleh,所以输出-1
时间: 2023-05-13 18:04:53 浏览: 168
以下是一个可能的解决方案:
```
#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` 会忽略空格。
相关问题
怎么读取一个字符串数组怎么读取各字符串组?
在许多编程语言中,读取字符串数组通常涉及到创建数组、初始化它,并通过索引来访问每个元素。这里以JavaScript为例:
```javascript
// 创建一个字符串数组
let stringArray = ["Hello", "World", "This", "Is", "An", "Example"];
// 读取并打印每个字符串
for (let i = 0; i < stringArray.length; i++) {
console.log(stringArray[i]); // 输出每个字符串
}
```
在这个例子中,`stringArray.length`会返回数组中的元素数量,`i`作为索引从0开始遍历数组,每次循环都会打印出对应位置的字符串。
如果你想要使用其他编程语言,比如Python:
```python
# 创建一个字符串列表
string_list = ['Hello', 'World', 'This', 'Is', 'An', 'Example']
# 遍历列表并打印每个字符串
for item in string_list:
print(item)
```
c语言输入一个字符串,讲所有东西空格删掉 并输出
在C语言中,如果你想从用户输入的字符串中删除所有的空格,并将其输出,可以使用`strtok()`函数配合循环。首先需要创建一个动态数组来存储结果,因为原始字符串长度可能会变短。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 100
int main() {
char str[100];
printf("请输入一个字符串: ");
fgets(str, sizeof(str), stdin); // 读取用户输入直到换行符
str[strcspn(str, "\n")] = '\0'; // 删除换行符
char* token = strtok(str, " "); // 分割字符串,空格作为分隔符
char result[MAX_LENGTH] = "";
while (token != NULL) {
strcat(result, token);
token = strtok(NULL, " "); // 再次分割,直到无更多字符
}
printf("去除空格后的字符串: %s\n", result);
return 0;
}
```
这段代码会提示用户输入字符串,然后删除其中的所有空格,最后输出处理后的字符串。
阅读全文