问题标签 [strlen]

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 回答
9543 浏览

c - 快速提问

我来用另一个可能非常简单的 C 问题来打扰大家。

使用以下代码:

2个问题。为什么它们不同,为什么 y 是 6?多谢你们。

编辑:对不起,我知道什么会解决它,我只是想了解发生了什么。那么 strlen 是否只是继续转发该点,直到它碰巧找到 \0?另外,当我在 main 函数中而不是在 get_len 函数中执行 strlen 时,两者都是 4。这只是巧合吗?

0 投票
5 回答
1321 浏览

php - 我的 jQuery 和 PHP 在同一件事上给出不同的结果?

烦人的大脑麻木问题。

我有两个函数来检查字符串的长度(主要是 js 一个也被截断)这是 Javascript 中的一个:

这是我要仔细检查的PHP:

我正在使用 jQuery Ajax 从 textarea 发布值。但是我的 php 验证说 strlen() 比我的 js 本质上说的要长。因此,例如,如果我键入一个实心字符串,它说 0 或 3 个字符,直到 255。然后我单击保存,php 给我的长度为 261。

有任何想法吗?

是否与特殊字符、js 读取不同或遗漏的位大小有关?还是与其他事情有关?也许今天病了!...:P

更新: 我添加var_dump($_POST['description']) 以查看通过了什么,它正在返回转义斜线,例如发生了什么?我试过添加 stripslashes(); 无济于事......他们来自哪里?

更新 2 - 问题已解决

基本上我想我刚刚意识到我的服务器打开了魔法引号...... grr 所以我现在在处理之前已经剥离了斜杠。有点烦人,但它必须这样做!

谢谢你的帮助!

谢谢,斯特凡

0 投票
2 回答
1114 浏览

c - C: sprintf 通过 strlen 通向 SIGSEGV 核心

我的 C 应用程序有以下两行:

应用程序偶尔会以以下方式与 SIGSEGV 崩溃:

任何人都可以提示问题出在哪里/可能是什么?

非常感谢,

0 投票
4 回答
5597 浏览

c - snprintf 中的 strlen 调用是否导致此段错误?

我有一个void *,叫它data,我知道它的长度,但不是空终止的。我这样打电话,已知长度snprintf(line, sizeof(line), "%*s", n, (const char*)data)在哪里。n几乎总是这样,但偶尔会导致段错误。

每当发生段错误时,回溯表明问题出在 strlen 内部。当我data在 gdb 中打印时,我看到类似这样的内容

data确实是 88 个字符,但不是以 null 结尾的,事实上,它似乎正好靠在一个段上。我的猜测是 snprintf 在数据上总是被称为 strlen ,我通常很幸运,即使data不是空终止,\0在我点击该段之前有一个,然后偶尔我会不走运,它是。是对的吗?如果是这样,解决方法是什么?

这就是堆栈跟踪的样子

编辑要回答我自己关于变通的问题,strncpy 是一个更合适的调用函数。我习惯使用 snprintf。

0 投票
2 回答
6373 浏览

c - C 弦,strlen 和 Valgrind

我试图理解为什么 Valgrind 吐出来:

每当我在动态分配的字符串上应用 strlen 时?

这是一个简短的测试用例:

这是 Valgrind 的结果输出:

避免这些警告的正确方法是什么?它们是真正的警告吗?

0 投票
3 回答
5025 浏览

php - PHP:使用strlen获取远程文件大小?(html)

我正在查看 fsockopen 和诸如此类的 PHP 文档,他们说你不能在远程文件上使用 filesize() 而不用 ftell 或其他东西做一些疯狂的事情(不确定他们到底说了什么),但我有一个很好的想法怎么做:

这会是一个好方法吗?当时它看起来非常简单和好用,只是想知道这是否会遇到问题或不是真正的文件大小。

我只希望在文本(网站)上使用它,而不是二进制。

0 投票
2 回答
778 浏览

c - strlen() 拒绝从 struct hostent 读取字符串 *

我一直在学习一个关于如何为 Linux 构建基本数据包嗅探器的小教程。我让一切正常,现在我想添加 IP 到主机的映射。

在我添加此功能之前一切正常:

这基本上需要一个字符串 IP 地址 ("192.168.28.18") ipaddress并将该 IP 的主机名 ("who.cares.com") 填充到hostname中。

发生的事情是strlen 拒绝给我任何东西(我知道strdup是如何工作的,我自己已经测试过了)和段错误。我使用过 GDB,字符串以空字符结尾,并且不是 NULL。

我还使用带有静态结构的原始字符串分配进行了测试:

仍然没有骰子。

那么,strlen怎么了?

0 投票
8 回答
16336 浏览

c - 在循环条件中使用 strlen() 是否比仅检查空字符慢?

我已经读到使用 ofstrlen比这样的测试更昂贵:

我们有一个x100 个字符长的字符串。

我觉得

比这段代码贵:

这是真的吗?也许第二个代码在某些情况下不起作用,那么使用第一个更好吗?

下面的会更好吗?

0 投票
5 回答
24089 浏览

php - 为什么我的 Content-Length 标头错误?

我试图在 php 5.2 中使用 strlen() 找出字符串的确切长度。字符串 ($data) 包含 '\t' 和 '\n'。

代码:

这不会返回确切的长度(它小于实际长度)。请指教。

0 投票
4 回答
24713 浏览

c - 在编译时确定#defined 字符串长度

我有一个C 程序(一个 Apache 模块,即程序经常运行),它将write()通过套接字连接一个以 0 结尾的字符串,所以我需要知道它的长度。

字符串 #defined 为:

有没有比在运行时使用更好的方法strlen(POLICY)+1(从而一次又一次地计算长度)?

预处理器指令,允许POLICY_LENGTH在编译时设置?