我的程序停止工作,因为检测到一个问题

My program stopped working because a p roblem has been detected?

本文关键字:一个 问题 停止工作 程序 因为 检测 我的      更新时间:2023-10-16

我试着查看人们在这条线上遇到的其他问题,但我无法将它们与我的程序联系起来。这可能很简单,但我很少做任何与C++相关的事情,所以我很困惑。我试着运行我的程序,它一直工作到我尝试使用"std::cout"来显示颠倒的名称。程序在命令窗口中运行了一段时间,但最终会弹出一个窗口,宣布出现问题,并将结束程序。我试着把一切都分解,让它尽可能简单,但我一辈子都找不到哪里出了问题。有人能帮忙吗?我为我提前做错的事情道歉,并为绕过"问题"标题过滤器道歉。干杯

#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;
}

必须包含<string>(C++标头)而不是<string.h>(C标头)。

nameLength未声明–必须是CCD_ 4。

最后,

Simplifier = nameLength - x;
reverseName[x] = fullname[Simplifier];

则尝试CCD_ 5访问经过CCD_。请记住,索引从0N-1,其中N是数组/向量/字符串中的元素数。

编辑:并且您必须调整for循环:x < nameLength而不是x <= nameLength

reverseName是一个空字符串,但您尝试使用reverseName[x]访问它的元素。请改用reverseName.push_back()reverseName +=

也许可以添加奇数n来格式化您的输出。