问题标签 [strncpy]

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 投票
4 回答
470 浏览

c - 创建 C 子字符串:使用赋值运算符 VS strncopy 循环,哪个更好?

这可能有点毫无意义,但我很好奇你们对此有何看法。我正在使用指针迭代一个字符串,并希望从中提取一个短子字符串(将子字符串放入预先分配的临时数组中)。是否有任何理由在 strncopy 上使用赋值,反之亦然?IE

在我看来, strncopy 的输入更少而且更容易阅读,但我看到人们提倡使用循环。有区别吗?这还重要吗?假设这是针对 i (0 < i < 5) 的小值,并且保证了空终止。

参考:c 中的字符串,如何获取子字符串,如何获取 C 中的子字符串, strncpy 和 memcpy 之间的区别?

0 投票
1 回答
8194 浏览

c++ - 如何将 strncpy() 转换为 WCHAR

我得到了一段在多字节字符集下工作的代码。但是,我想将这段代码转换为 UNICODE。所以我修复了很多东西,但在 strncpy() 行失败了。这是我要更改的行:

我使用了很多功能来解决这个问题,但都失败了。

这是错误:

0 投票
2 回答
3293 浏览

c - C:strncpy 导致指针问题

可能重复:
为什么在写入字符串时会出现分段错误?

我想替换字符串中的一个单词。这是代码

这工作正常,但

这给出了分段错误。

在第一个示例中,“文本”是一个数组,数据只是复制到该位置。在第二个“文本”是一个指针。什么是问题?

0 投票
1 回答
721 浏览

c - 在 C 中使用命令行检测参数,然后打印出参数的第一个或第二个字符

我需要制作一个程序,在命令行中接受不少于 2 个且不超过 6 个参数,然后打印出第一个或第二个字符 EX:asdf asdf asdf asdf 打印为:asas

我有初始数组设置和工作,下面的 for 循环旨在在输入中的一个空格处切断字符串并将其复制到新字符串,但它无法正常工作。我是 C 和这个网站的新手。任何帮助是极大的赞赏。

0 投票
4 回答
25585 浏览

c - 在C中复制字符串的结尾

我正在尝试使用 strncpy 仅将字符串的一部分复制到 C 中的另一个字符串。

如:

然后复制"do this"到另一个字符串,这样:

帮助表示赞赏。

0 投票
2 回答
456 浏览

c - C中strncpy的总线错误

我正在从事与此问题相同的项目,但是 typedef 略有不同:

我正在尝试将字符串拆分为单个单词,将其粘贴到 data_t 结构中,然后将其插入到二叉搜索树中。这个想法是,在遍历输入字符串时,当发现该字符是一个标记单词结尾的字符时,将单词开头和结尾之间的字符数复制到一个字符串中,我有尝试使用:

在哪里:

但是,当调用该特定行时,gcc 会给出总线错误。如何修复此总线错误并保留当前解决方案,还是寻找不同的解决方案更明智?

到目前为止,我能想到的唯一想法是,一次一个字符,将字符放入字符串中,直到到达单词的末尾。

0 投票
3 回答
1576 浏览

c - 使用 strncpy。Valgrind 抛出无效读取

我做了这个功能:

t_proceso 是什么并不重要,问题是这个函数接收一个字符数组。

该函数将始终接收其“某物()”的字符数组,我要做的是删除最后两个字符“()”,然后调用函数push_stack()。

问题是当我运行 Valgrind 时,我得到了这个:

我不知道我做错了什么,所以任何帮助将不胜感激。

0 投票
1 回答
370 浏览

c - strncpy 行为与 sprintf 不同

我正在使用以下代码创建一个用于测试哈希表的“密钥”(特别是,我正在测试删除项目所需的时间):

在我用评论标记的行中,有一个奇怪的行为。我正在使用 sprintf 将“temp_key”的内容复制到“key”。在此之前,我使用 strncpy 将“temp_key”的内容复制到“key”,但我从这个操作得到的结果是这样的(从 XCode 的调试器打印):

而“temp_key”产生以下输出:

哈希表使用 memcmp 比较 htable_item_search 函数中的键。但是使用 strncpy 有一些项目(如“Key:10”)在使用 sprintf 时找不到它完美地工作。那么为什么会有这种差异呢?

0 投票
3 回答
1460 浏览

c - 为什么这个 strncpy() 实现在第二次运行时崩溃?

为什么这个 strncpy() 实现在第二次运行时崩溃,而第一次运行正常?

字符串

Copy characters from string 将n源的第一个字符复制到目标。如果在复制字符之前找到源 C 字符串的结尾(由空字符表示)n,则用零填充目标,直到总共n写入了字符。

如果源长度大于n(因此,在这种情况下,目标可能不是以空结尾的 C 字符串),则不会在目标末尾隐式附加空字符。

0 投票
4 回答
4481 浏览

c++ - strncpy 没有按预期工作

我的输出是:some random string. 但我希望它是:some. 谁能解释为什么它会这样?