问题标签 [strcat]

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 投票
9 回答
171 浏览

c - 写比 malloced 更多的字符。为什么它不会失败?

为什么以下工作不会引发某种分段错误?

但是,如果我添加

这个调用不应该失败,因为 strcat 使用的内存比分配的多吗?因此,不应该

也失败了,因为它试图释放 16 个字节,但我使用了 26 个字节(“/usr/bin/012RANDOMBUNNIES\0”)?

非常感谢您!

0 投票
2 回答
263 浏览

c - Scanf 不情愿地擦除了一个 char 数组

请参阅以下程序:

奇怪的是,特定的 scanf 如何在没有暗示的情况下擦除 s3 数组。怎么会这样?

0 投票
5 回答
1679 浏览

string - Matlab 字符到字符串的转换问题。要使用什么功能?

x(1) 为 1,x(2) 为 2,依此类推...中间有 5 个空格.. size(x) = 1 23 一行 23 列我试过使用 num2str, strcat 但我不能俱乐部的数字。y = num2str(x), y = strcat(x)

我希望它是.. x(1) = 1234, x(2) = 56789, x(3) = 7654

我应该使用什么功能来完成上述操作?

0 投票
2 回答
334 浏览

c - strcat 古怪行为

我编写了这个简单的 C 程序,但无法弄清楚 strcat 的这种奇怪行为

strcat 应用于 path,但 path2 最终也被修改。如果有人让我知道发生了什么,我将不胜感激:) 谢谢

./program 3 示例/mountdir/location2.csv 示例/rootdir/location2.csv

输出:

示例/rootdir/location2.csv

端线

0 投票
5 回答
134 浏览

c - C 内存问题

在上面的代码中,它打印了一些奇怪的符号或数字,后跟“hi”,我知道 strcat 正在附加到缓冲区。我通常将缓冲区中的内存归零。但我很好奇为什么我通常必须这样做。

如果我printf("%i", buffer);不使用 strcat,它只会打印一个随机数。那个号码是多少?在我用任何东西填充之前,任何人都可以解释或链接到解释缓冲区中内容的 tut 吗?

0 投票
3 回答
2617 浏览

c - 如何将 char 加入常量 char*?

我有一个连接两个常量 char* 并返回结果的函数。我想要做的是将一个 char 加入一个常量 char* 例如

0 投票
3 回答
225 浏览

c - 用 crt 在线性时间内连接 C 字符串

假设我们想在 C 中将 const char *s[0], s[1], ... s[n-1] 连接成一个 long char out[]。

形式上(为简单起见,忽略缓冲区溢出):

当然,这是一项微不足道的任务:从指向 out 的指针开始并为每个 char 推进它,
同时循环输入字符串。

另一种方法(仍然是线性时间)是保持一个指向末尾的指针,
并且每个 s[i] 都这样做:

但是,如果有一个标准的 CRT 函数知道如何strcpy()
并返回复制的字符数(或等效地,指向复制后的下一个字符的指针),则代码会更清晰。

我能想到的唯一 CRT 函数就是sprintf(),但它显然不如返回计数
的简单函数那么有效。strcpy()

有没有我缺少的功能?

0 投票
3 回答
8886 浏览

strcpy - strcpy 和 strcat 有时会导致问题

你好,我有一个类似下面的代码

这段代码似乎工作,但是当我使用 XCode 分析函数时,它说“函数调用参数是一个未初始化的值”,而且它有时会导致我的程序崩溃..当我删除它时,它工作正常......那有什么问题?谢谢

0 投票
2 回答
1638 浏览

c - Strtok 和 Strcat 冲突

我正在尝试使用 strtok 和 strcat 但第二个 printf 从未出现。这是代码:

如果我的输入是 tmp 的 1/2/3/4/5/6,那么控制台输出将是 13456。总是缺少 2。有谁知道如何解决这一问题?

0 投票
1 回答
1061 浏览

c - strcat() 在尝试创建以空格分隔的字符串时删除字符串。(C 编程)

在过去的几个小时里,我一直在努力解决这个问题,这是我在 3 年学习编程中遇到的奇怪问题之一。

我试图通过连接在标准输入的 argv 中找到的字符串来创建一个更长的、以空格分隔的字符串。这是我最初写的代码:

以上大部分是我未完成的选项处理。感兴趣的代码段位于 case : "@" 下的 switch 语句中。while 循环应该通过连接在 argv 中找到的字符串来创建 debugString,当字符串以“-”开头或到达 argv 结尾时停止。我还使用“strcat(debugString,”“);”在字符串之间添加空格 添加空格给我带来了麻烦。

如果我以这种方式连接所有字符串而不添加空格:

我得到以下信息:

这就是我期望它的工作方式。但是,如果我运行添加空格的代码:

然后我得到以下输出:

注意“what”和“going”之间的两个空格。我的程序仍然正确地添加了空格,即使由于某种原因一个单词被删除了。我已经尝试过许多不同的输入,它始终是输入中的第二个字符串被删除。有谁知道发生了什么?

PS 用 gcc -g -O0 -Wall -Wextra -std=gnu99 -lm 编译

我创建的所有包含文件都没有在这段代码中使用,所以问题不在我的包含中。