c++ - 如何从一行中提取单个字符并将其放入 const char*

标签 c++

我有一个文本文件,我正在逐行查看并从中获取相关信息。

但是,我似乎无法从这些行中获取适当的信息。我试图从这一行中取出一个字符并将其放入一个 const char*

一行是这样的:

                "character" "B"

我正在尝试从引号内提取“B”字符。

            std::string Output;

            int Quotations = 0;
            for (int i = 0; i < LineText.size(); ++i)
            {
                if ('"' == LineText[i])
                {
                    Quotations += 1;

                    if (3 == Quotations)
                    {
                        Output += LineText[i + 1];
                        break;
                    }
                }
            }

            return Output.c_str();

我很好地捕获了这条线并且还正确地计算了引号但是由于某种原因输出的结果是:

/=�UL��'F/�$/U�

而不是:

B

有什么地方出错了吗?

提前致谢。

最佳答案

你返回一个指向本地数据的指针。函数返回后,Output 字符串超出范围,然后指针无效。

为什么不返回一个 std::string 呢?

关于c++ - 如何从一行中提取单个字符并将其放入 const char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33854241/

相关文章:

c++ - 使用概念或 SFINAE 检查类是否具有带有 std::array 参数的模板化成员函数

c++ - 系统调用 - sys/syscall.h - 不是这样的文件或目录 -

c++ - 快速排序 3 个值

c++ - Consexpr 与宏

c++ - 无法使 wx-widget 与 netbeans 一起工作

C++ 生成文件错误 : No rule to make target

c++ - 为什么字符串作为指针或字符串作为原始数组总是在重载函数中作为指针调用?

c++ - 具有信号量同步的逻辑环形缓冲区

c++ - 引用容器对象的子集

android - 如何在android上编译cocos2d-x(我有一些错误)