问题标签 [string.h]

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 投票
1 回答
3021 浏览

c++ - 使用 gcc 编译器时未在此范围内声明“memcpy”

实际上我正在尝试用 mingw 编译 ac/c++ 项目。同一个项目实际上是用 Visual Studio 编译器编译的。为此,我编写了一个makefile,到目前为止一切正常。

在编译期间,我收到有关使用 string.h 和 stdio.h 声明的函数的错误,例如 memcpy() 、 printf()...,并出现以下错误:

那是因为编译器没有找到函数。在 Visual Studio 中编译时,逻辑上没有出现此错误,因为编译器包含如下路径:

我现在的问题是:我应该在我的 makefile 中做什么来告诉编译器使用 mingw 中的“string.h”和“stdio.h”函数。我试图将包含路径放在makefile中,例如:

但它没有效果。此外,Visual Studio 中的 string.h 和 stdio.h 与 gcc 使用的 string.h 和 stdio.h 之间存在差异。这会是个问题吗?

0 投票
3 回答
1731 浏览

c - strstr 函数中针的大小

这是一个简单的问题,但是,当我使用 strstr 函数时,为什么针的大小必须至少比针中的实际文本大一个字符?这是因为空字符吗?

当我将针作为针 [1] 时,它不起作用。为什么可以将确切数量的字符放入干草堆?

0 投票
2 回答
2198 浏览

c - 从 C 中的字符串中删除所有非字母字符 - 可能的编译器问题

我正在用 C 语言编写一个函数,它将接受一个字符串并删除所有不是小写字母字符的字符。到目前为止,我已经编写了这段代码:

当我将字符串“hello[][]world”传递给它时,该函数似乎主要工作,除了输出是:

当我在它进入 if 语句的每一行之后打印它时,这是我收到的输出:

它似乎真的很接近,但我不明白为什么它会产生这个输出!最奇怪的部分是我把代码给了另外两个朋友,它在他们的电脑上运行良好。我们都在运行相同版本的 Linux(ubuntu 14.04.3),并且都使用 gcc 进行编译。

我不确定代码是否存在会导致输出不一致的问题,或者是否是编译器问题导致了问题。与他们的机器相比,也许它与我机器上的 strcpy 有关?

0 投票
2 回答
1215 浏览

string-comparison - strcmp() 为相同的字符串比较返回不同的值

为什么 strcmp 在接收到相同的参数时会返回不同的值?

这些值仍然是合法的,因为 strcmp 的手册页说 strcmp 的返回值可以小于、大于或等于 0,但我不明白为什么它们在这个示例中不同。

0 投票
2 回答
169 浏览

c - 在文件中查找一行并提取信息

我必须在文本文件中找到以关键字开头的特定行,然后我必须分析这一行以提取信息。我会通过一个例子来说明:

这是文本文件(来自 Linux 的 /proc/cpuinfo)。我必须编写一个解析文件的函数,直到它找到“模型名称:”,然后它必须将信息“Pentium II (Deschutes)”存储在一个字符数组中。这是我到现在为止的编码:

它说缓冲区总是不够大......

0 投票
3 回答
756 浏览

c - char超过时使用strtoll将字符串转换为长整型

我正在使用 strtoll 函数将字符串转换为长整数。当输入字符串为 63 字符时,我没有遇到任何问题。

但是当它超过 63 个字符时给我错误的结果。

有效 ==> newDE1 = "11111011011101101......." 63 个字符。不工作 ==> newDE1 = "11111011011101101......" 64 个字符。是否有任何内置功能要实现。

0 投票
0 回答
970 浏览

c - C 中的 LC_MESSAGES 错误

我一直在浏览C文档here

我试图运行这个例子

但我无法建造它。我收到以下错误:

**错误:“LC_MESSAGES”未声明(在此函数中首次使用)

如何构建成功?

0 投票
1 回答
91 浏览

c - 在 strtok 如何使用 char* 作为参数

在我的程序中,我使用 malloc 将动态内存分配给“char *”类型的变量缓冲区。然后,如果我使用strtok(buffer,"+");它会给出分段错误。我得到了这个Stackoverflow和同样问题Stackoverflow的原因。但两个帖子都没有给我想要的解决方案。因为我不能根据我的程序使用静态内存或数组类型。 我的问题是在 strtok 中,如果我使用 char 数组然后工作正常,而当使用 char * 时会给出错误。如何在 strtok 争论中使用 char *。

最后一行显示分段错误

0 投票
1 回答
697 浏览

c - 在c中使用strcmp比较字符串

我的目标是让服务器在从客户端收到“hello”时打印“it works”。strcmp 功能对我不起作用。我被告知要使用f(strncasecmp(message,mess,5))它,但是它仅在客户端使用 netcat 与“^c”断开连接时才打印它。我一直试图解决这个问题一段时间,但没有得到任何地方。在客户端,我目前只使用 netcat。如果您有问题,请在第一次在这里告诉我否决票。

问题在这里“如果(strcmp(消息,混乱))”

0 投票
1 回答
136 浏览

c - 用分隔符分割字符串

我正在用纯 C编写一个程序(我的年终课程项目的要求)。它有一个存储 csv 值的.dat文件。我找到了一个逐行读取文件的函数和一个通过分隔符从文件中拆分行的函数,字符串拆分函数工作得非常好,直到 IDE 发生变化。我有 JetBrains 的学生许可证,最近买了一台 64 位笔记本电脑,所以我升级到了 CLion。然后开始遇到特定代码的问题,当它到达那行代码时,它会挂起我的程序,更具体地说,是在读取字符串中的最终分隔符时。

函数.c::str_split

它在main.c::main中是这样调用的

程序挂在这条线上...没有抛出错误,但是当 GDB 调试器显示停止时,IDE 还尝试通过建议一个可能提供帮助的 lib 包含来纠正此错误,但这也无济于事...。 调试器的输出..