编写一个 C++ 程序,接收一个字符串输入,并输出该字符串的反转版本。例 如,如果输入的字符串为 “hello world”,程序应输出 “dlrow olleh”。
时间: 2024-05-15 17:19:46 浏览: 19
```
#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++编写一个程序 接收用户输入的一个字符串
,然后反转字符串并输出。
很高兴回答你的问题!以下是解决方案:
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
int len = strlen(str);
for(int i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
printf("反转后的字符串为:%s", str);
return 0;
}
你可以将用户输入的字符串保存在一个字符数组中,然后使用一个 for 循环来反转字符串中的字符。具体来说,我们可以交换字符串的第一个字符和最后一个字符,第二个字符和倒数第二个字符,以此类推。最后输出反转后的字符串即可。
希望对你有所帮助!
用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 表示程序运行成功。
希望这个程序能够帮助到你!