问题标签 [c-strings]
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.
c - 处理返回的 C 字符串
在 C 中编写返回字符串的方法时,什么被认为是更好的做法?
传入缓冲区和大小:
或制作并返回适当大小的字符串:
PS您如何看待返回缓冲区ptr以允许分配样式和嵌套函数调用,即
c++ - 如何初始化 c-strings 数组(无 stl)
我想在 MSVC2010 中用零指针初始化 c 字符串数组
如何正确初始化arr_
?我不允许使用 STL、MFC 等。
c++11 - C++0x 函数删除 - 删除除某些类型之外的所有类型
在 C++0x 中,我可以这样做:
防止f()
在除double
.
我正在尝试做的是相似的,但是,并不完全相同。
我有一个对指针数组进行操作的函数。例如:
我希望能够让 T 为 char、char16_t 和 char32_t 工作,但不能为任何其他类型工作。我在想 C++0xdelete
将是实现这一目标的好方法。基本上,我希望能够防止此函数使用不是三种 Unicodechar
类型之一的任何类型,但我仍然希望获得函数模板的好处,它允许我概括类型并避免重复代码。
解决这个问题的最佳方法是什么?是否可以?
c++ - std::string::c_str() 结果的生命周期是多少?
在我的一个程序中,我必须与一些适用于const char*
.
可以说我有一个看起来像这样的结构:
我的更高级别的应用程序只处理std::string
,所以我想到了使用std::string::c_str()
来获取const char*
指针。
但生命周期是c_str()
多少?
我可以在不面对未定义行为的情况下做这样的事情吗?
还是我应该立即将结果复制c_str()
到另一个地方?
谢谢你。
c - 声明的意义
我曾多次遇到过这种说法char* ch = "hello";
。
我知道这char* ch
表明这ch
是指向 a 的指针 char
。但是将hello分配给 ch 是什么意思?
我无法理解这一点?请帮忙。
c++ - 缓冲区为 CString 时的 ReadFile 奇怪行为
我已经使用ReadFile
Windows API 方法继承了代码,以便在循环中从并行端口读取单个字节。
代码将CString
实例作为缓冲区参数传递,并将 1 作为要读取的字节数,如下所示:
这段代码工作了很长时间,但有时会引起奇怪的问题,例如从机器发送的输入“AV01000”被读取为“AkVk0k1k0k0k0”——在每个字符读取后以某种方式添加了一些随机字符。
我花了很长时间才弄清楚这种行为的根源,并将代码更改为:
它完美地工作,读取机器发送的确切数据。
这是内部代码中的某种缓冲区溢出CString
吗?如果不是,什么可以解释这种奇怪的行为?
c - 如何编写更好的strlen函数?
我正在阅读“编写出色的代码第 2 卷”,它显示了以下 strlen 实施:
这本书说这种实现对于没有经验的 C 程序员来说是典型的。在过去的 11 年里,我一直在用 C 编写代码,但我看不出如何在 C 中编写比这更好的函数(我可以想到在汇编中编写更好的东西)。怎么可能用 C 写出比这更好的代码呢?我查看了 glibc 中 strlen 函数的标准库实现,但我无法理解其中的大部分内容。我在哪里可以找到有关如何编写高度优化的代码的更好信息?
c++ - 如何有效地检查字符串是否具有 C++ 中的特殊字符?
我正在尝试查找是否有更好的方法来检查字符串是否具有特殊字符。就我而言,除字母数字和“_”之外的任何内容都被视为特殊字符。目前,我有一个包含特殊字符的字符串,例如 std::string = "!@#$%^&"。然后我使用 std::find_first_of () 算法检查字符串中是否存在任何特殊字符。
我想知道如何根据白名单来做到这一点。我想在字符串中指定小写/大写字符、数字和下划线(我不想列出它们。有什么方法可以指定某种 ascii 范围,例如 [a-zA-Z0-9_] )。我怎样才能做到这一点?然后我打算使用std::find_first_not_of()。通过这种方式,我可以提及我真正想要的内容并检查相反的内容。
c - regexec 和 regcomp 比自己做 strncmp 更有效率?
我有一个这样的字符串:
我想编写一个程序来询问用户她想要什么。如果她请求应该有“larry”作为皇冠和“red”樱桃的字符串,我需要返回字符串。
好的,我在这里简化了问题。可能有很多这样的字符串,我需要解析它们并返回所有匹配项。
问题:执行 regexec 和 regcomp 更有效还是分解字符串并执行 strncmp?
PS:似乎 regexec 需要在内部进行某种比较,并且这些比较被设计得非常高效。
c++ - 使用 char* 存储正确的文件路径
自从我弄乱 C/C++ 以来已经有一段时间了,我对使用 char* 的可用函数的记忆已经消失了。
我目前使用以下代码来获取当前工作目录...
但是,我需要走这条路,然后切断最后一个目录,将其放到上一个目录中。它目前在路径中存储诸如“C:/srcds/orangebox”之类的东西,我需要从中删除最后一个目录以获得正确的路径。在这种情况下,它将是“C:/srcds”。
使用 char* 执行此操作的最佳方法是什么?请不要建议使用字符串。我知道这非常容易,但是我使用的 SDK 主要围绕 char* 进行,所以我尝试坚持使用它以提高可读性。