问题标签 [cstring]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
75486 浏览

c++ - 初始化一个 Char*[]

问题在标题中,如何初始化 char*[] 并在 C++ 中为其赋值,谢谢。

0 投票
4 回答
2880 浏览

c++ - 为什么我的 char* 在 C++ 中是可写的,有时是只读的

我最近遇到了很大的问题char*。假设我创建了一个递归函数来恢复 achar*但取决于我如何初始化它,我会遇到一些访问冲突,并且在我的 C++ 入门中我没有找到任何可以让我理解正确路径的东西,所以我正在寻求你的帮助。

案例 1 尝试交换字母时遇到访问冲突的第一种情况:

案例2然后我尝试了这个让它工作

案例 3但是当我做了一个 cout 时,我在最后得到了一些随机的废话,所以我把它改成了

案例 4那行得通,所以我告诉自己为什么那时不行

案例 5,但它失败了,我还在某处读过你可以做类似的事情

然后添加一些东西。我的问题是为什么有些失败而有些失败,最好的方法是什么?

0 投票
1 回答
1385 浏览

c# - 从 c# 调用的非托管 c++ dll,在 dll 中使用 CString 时崩溃

你好最优秀的 Stackoverflowians

使用visual studio 2008 Team System,

我有一个具有简单功能的 c++ dll(mfc 静态链接的常规 dll)

从 c# 应用程序到 dll 的 DLLImport 工作,我可以从我的 c# 代码的调试器中进入这个函数但是(是的,它来了!)在函数“MyExportedFunction”中,你可以看到我实例化了一个 CString,当这个 CString 实例化被击中整个应用程序崩溃,调试器给了我

“无法执行。进程已终止刷新进程列表,然后再尝试另一个附加”

有人对我可以做些什么来解决这个问题有任何建议吗?

关于巴兹

0 投票
4 回答
9584 浏览

c++ - 在 g++ 编译器中使用 strlen 获取数组的长度

有人可以解释为什么我在使用以下 g++ 编译器编译源代码时出现此错误

这给了我以下错误

test.cpp:在函数'int main()'中:

test.cpp:31:错误:未在此范围内声明“strlen”

当我将其更改#include <string>#include <string.h> or#include<cstring>时,它工作正常,我需要弄清楚使用#include<string>and有什么区别#include<string.h>。非常感谢任何帮助

0 投票
2 回答
446 浏览

c - 在函数调用中初始化 cstring 数组

我怎么能这样做:

但不是这个:

在函数调用中初始化一个 cstrings 数组是不可能的吗?

以下是一些其他的信息花絮:

0 投票
4 回答
4726 浏览

c - 为什么我不能像这样初始化一个 cstrings 数组?

为什么这会返回错误expected expression before ‘{’ token?我想像这样初始化我的数组的原因是这样我以后可以像这样更改它的内容:

0 投票
1 回答
160 浏览

c - 我可以假设像这样正确初始化二维数组吗?

当我像这样声明一个二维数组时:

我可以假设这个数组中的所有其他字符现在都设置为\000吗?

0 投票
3 回答
36849 浏览

c++ - UTF-8、CString 和 CFile?(C++,MFC)

我目前正在开发一个专门使用 UTF-8 的 MFC 程序。在某些时候,我必须将 UTF-8 数据写入文件;为此,我使用 CFiles 和 CStrings。

当我将 utf-8(更准确地说是俄语字符)数据写入文件时,输出看起来像

等等。这肯定不是 utf-8。要正确读取这些数据,我必须更改我的系统设置;将非 ASCII 字符更改为俄语编码表确实有效,但随后我所有基于拉丁语的非 ASCII 字符都会失败。无论如何,我就是这样做的。

我错过了什么吗?我应该改用别的东西吗?有什么我错过的吗?程序员们,我会为您的智慧和经验而努力。

编辑:当然,正如我刚刚提出的一个问题,我终于找到了一些可能很有趣的东西,可以在这里找到。我想我可能会分享它。

编辑2:

好的,所以我将 BOM 添加到我的文件中,该文件现在包含中文字符,可能是因为我没有将我的行转换为 UTF-8。添加我做的bom...

在那之后,我添加了...

但后来我无法编译,因为我真的不知道如何获得 TestLine 的长度。strlen 似乎不接受 TCHAR。 已修复,改为使用 1000 的静态长度。

编辑 3:

所以,我添加了这段代码......

它编译得很好,但是当我查看我的新文件时,它与我没有所有这些新代码时完全相同(例如:Ðàñïå÷àòàíî:)。感觉就像我没有向前迈出一步,虽然我想只有一件小事让我与胜利分开。

编辑4:

正如 Nate 所要求的,我删除了之前添加的代码,我决定改用他的代码,这意味着现在,当我要添加我的行时,我已经......

一切都编译得很好,但是俄语字符显示为???????。越来越近,但仍然不是那样。顺便说一句,我要感谢所有试图/试图帮助我的人,非常感谢。我已经坚持了一段时间了,我等不及这个问题消失了。

最终编辑(我希望)通过改变我第一次获得 UTF-8 字符的方式(我在不知道的情况下重新编码),这与我输出文本的新方式是错误的,我得到了可以接受的结果。通过在我的文件开头添加 UTF-8 BOM 字符,它可以在其他程序(如 Excel)中读取为 Unicode。

欢呼!谢谢大家!

0 投票
3 回答
394 浏览

c++ - 文件未打开,在调试器之外运行导致段错误(c++)

你好(提前感谢)

我有点困惑,我似乎无法弄清楚为什么我会出现段错误。

几点注意事项:

  1. 这是一门课程——遗憾的是,我需要使用 C-strings 而不是 std::string。
  2. 请不要修复我的代码(我不会那样学习,我会一直困扰你)。请指出我的逻辑中的缺陷并提出不同的功能/方式。
  3. 平台:Suse Linux 11.2(2.6.31 内核)上的 gcc 版本 4.4.1

这是代码

主.cpp:

字典.h/.cpp

入口.h/cpp

0 投票
2 回答
1159 浏览

c - 如何用更大的 char 指针列表覆盖 char 指针数组?

我的函数被传递了一个结构,其中包含一个以 NULL 结尾的指针数组,这些指针指向组成带有参数的命令的单词。

我正在对参数列表执行全局匹配,以将它们扩展为完整的文件列表,然后我想用新的扩展参数数组替换传递的参数数组。

globbing 工作正常,即 g.gl_pathv 填充了预期文件的列表。但是,我无法将此数组复制到给定的结构中。

编辑 1:另外,我意识到我需要将程序作为 cmd->argv[0] 粘贴到那里
编辑 2:添加对 calloc 的调用
编辑 3:使用 Alok
编辑 4 的提示编辑内存管理:来自 alok
编辑 5 的更多提示:几乎工作..释放命令结构时应用程序段错误

最后:好像我错过了终止 NULL,所以添加以下行:

似乎使它工作。