操作内存中具有多个空字符的 C 字符串

2024-04-26

我需要在一块内存中搜索一串字符,但其中几个字符串的每个字符都为空分隔,如下所示:
“我..a.m..a.s.t.r.i.n.g”
所有 '. 都是空字符。我的问题来自于实际将其记入内存。我尝试过多种方法,例如:

 char* str2; 
 str2 = (char*)malloc(sizeof(char)*40);   
 memcpy((void*)str2, "123\0567\09abc", 12);    

将把以下内容放入str2指向的内存中:123.7.9abc..
就像是
str2 = "123456789\0abcde\054321";
将让 str2 指向一个看起来像这样的内存块123456789.abcde,321,其中“.”是空字符,“,”是实际的逗号。

显然,在 cstrings 中插入空字符并不像我想象的那么容易,就像插入换行符一样。我在尝试使用字符串库时也遇到了类似的困难。我可以做单独的作业,比如:

 char* str;    
 str = (char*)malloc(sizeof(char)*40);  
 strcpy(str, "123");  
 strcpy(str+4, "abc");  
 strcpy(str+8, "ABC");  

但这当然不是优选的,我相信问题在于我对 C 风格字符串如何存储在内存中的理解。显然“abc\0123”实际上并没有进入内存61 62 63 00 31 32 33(十六进制)。它是如何存储的?我如何存储我需要的内容?

(我也为没有在块中设置代码而道歉,这是我第一次发布问题,不知何故“四行间距”比我显然能处理的更困难。谢谢你,Luchian。我看到需要更多换行符。)


如果每隔一个char包含 null,那么几乎可以肯定您确实拥有 UTF-16 编码的字符串。相应地处理它们,你的问题就会消失。

假设您使用的是 Windows,其中 UTF-16 很常见,您将使用wchar_t*而不是char*来握住这样的弦。您将使用宽字符串处理函数来操作此类数据。例如,使用wcscpy而不是strcpy等等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

操作内存中具有多个空字符的 C 字符串 的相关文章

随机推荐

  • 将数据库结果转为数组

    我刚刚为组织查询分层数据的 闭包表 方式制作了更新 添加 删除部分 如本幻灯片第 70 页所示 http www slideshare net billkarwin sql antipatterns strike back http www
  • 如何设置http请求的源IP?

    在发送 http 请求之前 我需要设置源 IP 地址 用于 IP 欺骗等 用于建立http连接的类是HTTPURLConnection 我在 stackoverflow 上找到了下面的链接 这非常有用 注册和使用自定义 java net U
  • 使用 Python 重新打开与 Power BI XMLA 端点的连接时出错

    我有以下 python 代码 它在函数运行时工作正常 但在第二次运行时失败 import adodbapi def connect and print input str print Function starting input str
  • 之间有什么区别?

    有什么区别 b and strong i and em 在 HTML XHTML 中 你应该什么时候使用每一个 他们有对普通网络浏览器渲染引擎具有相同的效果 但是有一个根本区别它们之间 正如作者所写讨论列表帖子 https web arch
  • TeamCity:PhantomJS 在 60000 毫秒内没有捕获,杀死

    我在 CI 环境中运行测试时遇到问题 该配置在使用 Node v6 0 0 npm 3 8 6 的 MacOS 10 11 6 El Capitan 上运行良好 但在使用 Node v4 2 2 npm 2 14 7 运行 Windows
  • 当应用程序繁忙时,如何防止用户在闪亮的应用程序上执行任何操作

    我有一个复杂的闪亮应用程序 有很多输入 传单地图等 我遇到的问题是 当应用程序忙于进行一些计算时 用户不断单击应用程序上的任意位置 有时应用程序会崩溃 我想阻止用户在应用程序繁忙时进行任何点击 重要的是 旋转器保持旋转器状态 而不是像在wa
  • 从 Django 缓存中删除特定项目?

    我正在使用站点范围的缓存内存缓存 http en wikipedia org wiki Memcached作为后端 当底层数据库对象更改时 我想使缓存中的页面无效 如果页面名称发生更改 那么我将使整个缓存无效 因为它会影响每个页面上的导航
  • 更改 iis 7 的 Inet 根文件夹

    我面临着一个非常令人恼火的挑战 我必须在生产服务器中部署 ASP NET MVC 3 应用程序 在这个生产服务器中我有两个驱动器C and D 我有权将我的网站放在D 数据文件夹我不能使用C 不幸的是 IIS 创建了Inet目录在C 显然
  • 如何使用 Android 模拟器查找 GPS 位置?

    你好 朋友们 我正在尝试查找 Android 模拟器的当前 GPS 位置 我已经使用了命令 geo fix 但是如果我尝试检索当前位置 它会显示异常 任何人都可以帮助我吗 从模拟器中您无法获取当前位置 你必须自己定位位置 试试这个 C an
  • 带有子列表的通用记录 TList?

    我想在 Delphi XE5 中使用带有子列表的通用记录 TList type TMyRecord record Value1 Real SubList TList
  • .htaccess 重定向 – 两个重定向之间的差异

    您能解释一下下面两个 htaccess 重定向之间的区别吗 第一个重定向是我最常使用的重定向 但它在最近的网站上不起作用 太多重定向 即使我没有任何设置 但第二个重定向有效 我很好奇 RewriteEngine On RewriteCond
  • 添加到 ArrayList 时出现 Java NullPointerException?

    我的代码抛出 NullPointerException 即使该对象似乎正确存在 public class IrregularPolygon private ArrayList
  • 使用 bash 脚本在 Info.plist 中添加/替换 URL 方案

    我想添加 替换 URL 方案Info plist使用 bash 脚本 命令创建文件 我尝试过sed命令有各种模式但没有成功 我们希望使用 Jenkins 自动生成构建 并且我们的 URL 方案可以针对各种构建进行更改 因此我们想要修改Inf
  • CMYK 2 RGB 问题

    我在将 CMYK 颜色转换为 RGB 时遇到问题 在互联网上有很多公式可以转换它 但例如当我将 CMYK 0 100 100 0 转换为 RGB 时 它得到的值是 255 0 0 但在 Adob e Photoshop 中 RGB 值是 2
  • 将列表组合成元组对 (x, y)

    我正在尝试组合通过传入的数字对sys argv 例子 python myscript py 35 12323 112 76767 36 33345 112 76890 33 68689 111 8980 我的目标是将它们变成元组中的两个集合
  • 使用 PInvoke 从 C# 读取具有“union”类型的 C 结构

    我正在尝试将用 C 构建的结构引入托管端 C 让我们假设这个结构 C 代码 typedef struct S int i union TypeA a TypeB b TypeC c uni S 现在 我创建 C 包装类 StructLayo
  • 查询 Firestore 中的特定日期

    我正在尝试查询 Firestore 中的指定日期 到目前为止我已经尝试过这段代码 let ref db collection schools doc DglhflywuybkOuCq7tGW let start new Date 2018
  • 如何在scala的specs2测试中使用jUnit的TemporaryFolder?

    我正在使用 Playframework 编写测试 我需要创建一个临时文件 RunWith classOf JUnitRunner class DiagnosticSpec extends Specification Rule val tem
  • 双前向/后向管道操作符是否有记录?

    我记得读过有关双管道运算符的内容 gt 和 Example let print a b sprintf O O a b 1 2 gt print val it string 1 2 双 向前 向后 管道运算符记录在以下列表中MSDN 上的
  • 操作内存中具有多个空字符的 C 字符串

    我需要在一块内存中搜索一串字符 但其中几个字符串的每个字符都为空分隔 如下所示 我 a m a s t r i n g 所有 都是空字符 我的问题来自于实际将其记入内存 我尝试过多种方法 例如 char str2 str2 char mal
Powered by Hwhale