草庐IT

php - 检查字符串长度是否大于或小于所需数量的函数

我想创建一个函数来检查字符串的长度是大于还是小于所需的长度:像这样:functioncheck_string_lenght($string,$min,$max){if($string==""){returnx;}elseif(strlen($string)>$max){returny;}elseif(strlen($string)问题是我不知道要返回什么。我不想返回类似“字符串太短”的内容。也许是一个数字,0if=="",1如果大于,2如果小于?这样做的正确方法是什么? 最佳答案 您可以像许多比较函数一样返回1、0和-1。在这种情况

php - 字符串长度与其他语言不同......不是英语

我使用此编码来缩短我在网站上的评价,效果非常好!但现在我遇到了一个问题......我已经给了用户使用他们自己的语言添加他们的推荐的机会。我的编码适用于英文字符,但不适用于其他语言的字符……谁能告诉我这是为什么????100){$bar=substr($echo,0,101)."ReadMore...";}echohtmlspecialchars($bar);?>非常感谢任何评论。谢谢。 最佳答案 使用mb_*函数。在您的示例中为mb_strlen和mb_substr。原因是strlen和substr将计算完全适合ASCII字符的字节

php - 为什么在引用值上调用函数(如 strlen、count 等)这么慢?

我刚刚在PHP中发现了一些非常奇怪的东西。如果我通过引用将一个变量传递给一个函数,然后在其上调用一个函数,它会难以置信慢。如果您遍历内部函数调用并且变量很大,它可能比按值传递变量慢很多个数量级。例子:这在我的机器上(在PHP5.3上)运行通常需要大约20秒。但是如果我将函数更改为按值传递(即functionTestCount($aArray)而不是functionTestCount(&$aArray)),那么它会运行在大约2毫秒-快10,000倍!其他内置函数(如strlen)和用户定义函数也是如此。这是怎么回事? 最佳答案 我发现

C++ 赋值,strcpy 和 strlen 与字符数组 n 指针

我正在做这个作业,遇到了一个问题。有一次,我必须向用户询问两个输入命令以备后用,我希望将它们放入一个字符数组中。然后我想将他们的输入放入char*但我最终遇到了段错误这是我的一小部分代码,显示了我遇到问题的地方:#include#includeusingnamespacestd;intmain(){charfirstAns[80];char*command1[5];intansLen;//Askforcommandcout>firstAns;ansLen=strlen(firstAns);for(inti=0;i我运行它的程序编译得很好,但我已经将段错误缩小到程序的这一部分,作为新手程

c++ - Valgrind 检测 strlen 中的无效读取

我正在使用Valgrind来检测我的库中的内存泄漏/错误,这是我第一次使用它。这似乎表明std::string中存在一些无效读取。这是错误信息的开头==16214==Invalidreadofsize1==16214==at0x402701D:strlen(mc_replace_strmem.c:282)==16214==by0x40E53AA:std::basic_string,std::allocator>::basic_string(charconst*,std::allocatorconst&)(in/usr/lib/i386-linux-gnu/libstdc++.so.6.

c++ - 使用 strlen() 查找字符串数组的长度

我一直试图找到string的长度,它有一个char数组,带有strlen()函数,但它不是在职的。我使用的代码是这样的:strings[]={"a","b","c"};intlen=strlen(s.c_str());它会产生以下错误:"requestformemberâc_strâinâwArrayâ,whichisofnon-classtype"但是当我像这样在string上使用这个strlen()函数时,它工作正常:fin.open("input.txt");stringtempStr;getline(fin,tempStr,'\n');intlen=strlen(tempStr

c++ - std::string 的 strlen(str.c_str()) 和 str.length() 之间的区别

作为一种隐含的理解,我一直认为std::string的每一个实现必然必须满足strlen(str.c_str())==str.length()对于每个字符串str。C++标准对此有何规定?(是吗?)背景:至少VisualC++和gcc附带的实现没有这个属性。考虑这个例子(参见hereforaliveexample)://Output://stringsaysitslengthis:13//strlensays:5#include#include#includeintmain(){std::stringstr="Hello,world!";str[5]=0;std::cout当然,没有注

c++ - 在编译时评估 strlen?

如果我的代码有这个constexpr字符串constexprcharmy_str[]="hello";my_str的类型包含有关其大小的信息,即sizeof(my_str)是常量6,可以在需要常量的任何地方使用。strlen(my_str)呢?是否也可以/应该将其计算为编译时常量?这里是一个例子:https://ideone.com/2U65bN这是一个例子:http://coliru.stacked-crooked.com/a/8cb094776dfc5969标准对此有何规定?肯定不是“也许”? 最佳答案 在C++17中你可以使用

c++ - 使用/Wp64 编译时如何在没有警告的情况下将 strlen 的结果转换为 int

intl=strlen(s);警告C4244:“=”:从“__w64int”到“int”的转换,可能会丢失数据我需要用内联函数替换strlenintl=new_strlen(s);但是我如何在没有警告且不使用pragma的情况下将strlen的结果移植到int中?我可以保证我的字符串中不超过20亿个字符!所有像reinterpret_cast、static_cast这样明显的事情也会产生错误或警告。编辑:啊。c风格的转换:(int)确实有效。我一直坚信它没有。 最佳答案 constchar*str="Hello";intlen=st

c++ - 在 C++ 中获取 const char * 长度的最佳方法

我知道两种获取constchar长度的方法*constchar*str="HelloWorld!";intSize=0;while(str[Size]!='\0')Size++;其他方式很简单constchar*str="HelloWorld!";size_tSize=strlen(str);但我不想使用像strlen这样的strlib函数,我认为这个函数也使用了我的第一种方式行为。因为在PC世界中,当我们想要计算某些东西时,我们需要计算每个block的数量,并且没有魔法可以通过一次移动获得长度,所以我认为第一种方法是获得constchar*。其他方式我认为第一种方式对于重弦来说可能太