编写一个 C++ 程序,接收一个字符串输入,并输出该字符串的反转版本。例 如,如果输入的字符串为 “hello world”,程序应输出 “dlrow olleh”。
时间: 2024-05-15 07:19:46 浏览: 130
```
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
printf("请输入一个字符串:");
fgets(str, 100, stdin); // 从标准输入读取字符串
str[strcspn(str, "\n")] = '\0'; // 去掉字符串末尾的换行符
int len = strlen(str);
printf("反转后的字符串为:");
for(int i = len-1; i >= 0; i--)
{
printf("%c", str[i]);
}
printf("\n");
return 0;
}
```
解释:
1. 定义一个字符数组 `str`,用于存储输入的字符串。
2. 使用 `fgets()` 函数从标准输入读取字符串,该函数可以保证读取的字符数不超过第二个参数指定的值(本例中为 100),并且会自动在末尾添加一个换行符。
3. 使用 `strcspn()` 函数找到字符串中第一个换行符的位置,并将其替换为字符串结束符 `\0`,这样可以去掉字符串末尾的换行符。
4. 使用 `strlen()` 函数获取字符串的长度。
5. 使用 `for` 循环倒序输出字符串中的每个字符。注意,字符数组下标从 0 开始,因此最后一个字符的下标为 `len-1`。
6. 在输出完所有字符后,记得要换行。
相关问题
用C++ 编写一个程序,实现输入一个字符串并将其反转输出。如果输入的字符串为空,则输出错误信息并抛出异常。
好的,我可以帮你编写这个程序。以下是完整的 C++ 代码:
```cpp
#include <iostream>
#include <string>
#include <stdexcept>
using namespace std;
int main() {
string str;
cout << "请输入一个字符串:";
getline(cin, str);
if (str.empty()) {
throw invalid_argument("错误:输入的字符串为空!");
}
string reversed_str;
for (int i = str.length() - 1; i >= 0; i--) {
reversed_str += str[i];
}
cout << "反转后的字符串为:" << reversed_str << endl;
return 0;
}
```
首先,我们使用 `string` 类型的变量 `str` 来存储用户输入的字符串。然后,使用 `getline()` 函数从标准输入读取用户输入的字符串。
接下来,我们对输入的字符串进行判断。如果为空,则使用 `throw` 语句抛出一个 `invalid_argument` 异常,并输出错误信息。
如果输入的字符串不为空,则使用一个 `for` 循环将其反转。在循环中,我们从字符串的最后一个字符开始,依次将每个字符添加到另一个 `string` 类型的变量 `reversed_str` 中。
最后,我们输出反转后的字符串,并返回 0 表示程序运行成功。
希望这个程序能够帮助到你!
用C++实现:编写一个程序,实现输入一个字符串并将其反转输出。如果输入的字符串为空,则输出错误信息并抛出异常。
好的,这是一个简单的实现。以下是C++代码:
```c++
#include <iostream>
#include <string>
#include <exception>
using namespace std;
string reverseString(string str) {
if (str.empty()) {
throw invalid_argument("The input string is empty!");
}
string reversedStr = "";
int len = str.length();
for (int i = len - 1; i >= 0; i--) {
reversedStr += str[i];
}
return reversedStr;
}
int main() {
string inputStr;
cout << "Please enter a string: ";
getline(cin, inputStr);
try {
string reversedStr = reverseString(inputStr);
cout << "Reversed string: " << reversedStr << endl;
}
catch (exception& e) {
cerr << e.what() << endl;
}
return 0;
}
```
该程序使用了 `string` 类型和 C++ 标准库中的 `getline` 函数来读取用户输入的字符串。如果输入的字符串为空,则抛出 `invalid_argument` 异常并输出错误信息。如果输入的字符串不为空,则将其反转并输出。
阅读全文