回文程序和 C 样式字符串中不需要的字符
Palindrome program & unwanted chars in c-style string
#include <iostream>
#include <string>
using namespace std;
int main()
{
string word1;
cout << "nEnter a string : ";
getline(cin, word1);
string word2 = word1;
int size = word2.size();
char word3[20];
int y = 0;
for (int x = size - 1; x >= 0; x--)
{
word3[y] = word2[x];
y++;
}
if (word1 == word3)
{
cout << "nOutput: 1";
}
else
{
cout << "nOutput: 0";
}
system("pause");
return 0;
}
这个代码允许用户输入一个单词,计算机判断这个单词是否是回文。它通过取单词并向后打印来实现这一点。然后将其与原始单词进行比较。我已经使用断点调试了我的代码,autos、local和watch窗口和word2的最后一个字母被分配给word3的第一个字母(应该是这样)。但是在整个过程之后,word3仍然充满了一堆疯狂的字符,如果您只是将word3打印到屏幕上,则不会看到这些字符(如果原始单词是"hello",则会给出另一个字符串"ollehÍÍÍÍÍÍÍÍÍÍ…")。正因为如此,计算机认为最初的单词和第一个单词不一样(即使它们是一样的)。问题:我如何摆脱这些"ÍÍÍÍÍÍ…"字符在我的字符串。(我使用c风格的字符串,因为字符串对象有它自己的一套复杂性。它表示超出了下标,并且只有当我将其初始化为与我要输入的单词中的字符数量相等的空格时才有效。"
这些'有线字符'来自未清除的缓冲区。
char word3[20] = { };
你会没事的
相关文章:
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 是否有类似std::lower_bound的函数,而不需要排序/分区输入
- 为什么output_editor Concept不需要output_e迭代器标记
- 在除法中不需要四舍五入
- 与C代码相比,为什么C++代码不需要"#define _POSIX_C_SOURCE 200809L"?
- 将值从另一个数组写入数组,不包括不需要的值 C++
- C++ 写入路径名中包含不需要的空字符的文件
- 是否有必要获取锁并在不需要唤醒线程时通知condition_variable?
- 使用 assimp 加载模型 - 不需要提升?
- 为什么转换函数声明不需要至少一个定义类型说明符
- 返回不需要的值的二叉搜索程序
- 当我不需要数据库中的所有值时,如何部分初始化 c++ 对象?
- 使用带有诅咒库的 stdscr 创建窗口,在边框而不是线条中显示不需要的笑脸字符
- 在c++中使用cin.get()从输入流中丢弃不需要的字符
- strftime 将不需要的字符添加到我尝试显示的内容中
- 删除字符末尾不需要的字符
- 删除不需要的字符
- 回文程序和 C 样式字符串中不需要的字符
- ZLib压缩向数据中添加不需要的字符
- Fstream排序-不需要一个空格字符