我试着看看人们在这条线上遇到的其他问题,但我无法将它们与我的计划联系起来。这可能很简单,但我很少做任何与C ++相关的事情,所以我很困惑。我尝试运行我的程序,直到我尝试使用" std :: cout"显示反转的名称。程序在命令窗口中运行了一段时间,但最终会弹出一个窗口窗口,宣告出现问题并且它将结束程序。我试图打破一切,以便它很简单,因为它可能我不能为我的生活找到错误。有人可以帮忙吗?对于我事先做错的任何事情我道歉并为绕过问题而道歉#39标题过滤器。干杯!
#include <iostream>
#include <string.h>
std::string firstName;
std::string lastName;
std::string fullname;
std::string reverseName;
int x;
int Simplifier;
int willThisWork;
int main()
{
std::cout << "Welcome to this random program that serves \n";
std::cout << " NO PURPOSE! \n";
std::cout << "That being said, what is your first name? : ";
std::cin >> firstName;
std::cin.ignore();
std::cout << "Okay... Now what is your last name? : ";
std::cin >> lastName;
std::cin.ignore();
fullname = firstName + " " + lastName;
std::cout << "Your full name is : " << fullname;
nameLength = fullname.length();
for(x = 0; x <= nameLength; x++)
{
Simplifier = nameLength - x;
reverseName[x] = fullname[Simplifier];
}
std::cout << "Reversed name : " << reverseName;
return 0;
}
答案 0 :(得分:2)
您必须包含<string>
(C ++标头)而不是<string.h>
(C标头)。
nameLength
未声明 - 必须为int nameLength
。
最后,
Simplifier = nameLength - x;
reverseName[x] = fullname[Simplifier];
尝试x==0
访问fullname
的最后一个元素之后的那个。请记住,索引从0
到N-1
,其中N
是数组/向量/字符串中元素的数量。
修改:您必须调整for
循环:x < nameLength
而不是x <= nameLength
。
reverseName
是一个空字符串,但您尝试使用reverseName[x]
访问其元素。请改用reverseName.push_back()
或reverseName +=
。
也许添加奇数\n
来格式化输出。