字符串长度

js 中英文截取字符串长度

心已入冬 提交于 2019-12-10 03:35:59
subStr(str,n){ var r=/[^\x00-\xff]/g; if(str.replace(r,"mm").length<=n){return str;} var m=Math.floor(n/2); for(var i=m;i<str.length;i++){ if(str.substr(0,i).replace(r,"mm").length>=n){ return str.substr(0,i)+"..."; } } return str; }, 来源: CSDN 作者: 辛子未 链接: https://blog.csdn.net/xuewen720/article/details/103464782

C++常用字符串函数使用整理

一曲冷凌霜 提交于 2019-12-07 11:22:26
C++常用字符串函数使用整理 strlen(字符数组) 功能:求字符串长度。 说明:该函数的实参可以是字符数组名,也可以是字符串。 使用样例: char s1[80] = "China"; cout<<strlen(s1)<<'\n';      //输出结果为5 cout<<strlen("大学生")<<'\n';   //输出结果为6  结果说明:一个汉字有两个字节,所以strlen("大学生")的结果为6。 strcpy(字符数组1,字符数组2) 功能:将字符数组2中的字符串复制到字符数组1中 说明: (1)字符数组1的长度必须大于等于字符数组2的长度。 (2)复制时连同字符串后面的'\0'一起复制到字符数组1中。 (3)不能用赋值语句将一个字符串常量或字符数组直接赋给一个字符数组。 (4)字符数组的复制只能用strcpy函数处理。用一个赋值语句只能将一个字符赋给一个字符型变量或字符型数组元素。但可以在定义的时候初始化。 如以下形式: str1 ={''Good"};    //不合法 str1 = str2;      //不合法 char a[5],c1,c2; c1 = 'A'; c2 = 'B';    //合法 c[0] = 'C';       //合法 char g[20] = "aaaa''   //合法 使用样例: `char a[20]="aaaaaa"

php--------使用 isset()判断字符串长度速度比strlen()更快

主宰稳场 提交于 2019-12-07 10:32:07
isset()速度为什么比strlen()更快呢? strlen()函数函数执行起来相当快,因为它不做任何计算,只返回在zval 结构(C的内置数据结构,用于存储PHP变量)中存储的已知字符串长度。但是,由于strlen()是函数,多多少少会有些慢,因为函数调用会经过诸多步骤,如字母小写化、哈希查找,会跟随被调用的函数一起执行。因此在某些情况下,合理使用isset()可以加速你的程序。因为isset()是一种语言结构,它的执行不需要函数查找和字母小写化等。 具体通过 isset() 和 strlen() 判断字符串长度示例如下: $str='http://www.phpernote.com/php-template/436.html'; if(strlen($str)<5){echo "未满5";} if(!isset($str{5})){echo "未满5";} 下面我们来详细的分析一下strlen()和isset()这两个函数。 PHP strlen() 函数 定义和用法 strlen() 函数返回字符串的长度。 语法:strlen(string) 参数:string 描述:必需。规定要检查的字符串。 strlen() 函数实例 <?php echo strlen("Hello world!"); ?> 结果将输出: 12 PHP isset() 函数

编写一个求字符串长度的函数strlen(),再用strlen()函数编写一个函数reverse(s)的倒序递归程序,使字符串s逆序-简单

≡放荡痞女 提交于 2019-12-04 23:25:52
源程序: #include < iostream > #include < string > using namespace std; int strlen(char *str) {   int len = 0;   while (str[len] != '\0')   {     len++;   }   return len; } void revers(char *b) {   char c;   int j, len;   len = strlen(b);   j = len / 2 - 1;   while (j >= 0)   {     c = *(b + j);     *(b + j) = *(b + len - j - 1);     *(b + len - j - 1) = c;     j--;   }   b[len] = '\0'; } void main() {   cin.get();   char *s;   char str[10];   cout << "输入一个字符串:";   s = str;   cin.getline(s, 10);   //char str[]={"1234567890"};   cout << str << "----的长度:" << strlen(str) << endl;   cout << str <<

最长回文子串-Manacher算法(详解)

北城以北 提交于 2019-12-04 20:14:39
定义: 回文串 :一个字符串, 逆置之后,与原串相同; 回文子串 : 一个字符串的子串( 连续 ),是回文串.则该子串为整个字符串的一个回文子串. 最长回文子串:一个字符串中最长的回文子串. 求最长回文子串最容易 想 的 方法1(dp): 先将串逆置,再与原串求最长公共子序列(LCS)(o(n^2)), //时间O(n^2) 空间O(f(n^2)); 方法2(纯暴力): 两重循环枚举起点终点(所有子串)(o(n^2)),如果是回文串,返回长度,不是返回0(o(n)),寻找最大长度.//时间 O(n^3); 稍微提升一下, 方法3(中心扩展): 枚举对称中心, 向两边扩展,遇边界,或不同,停止扩展,继续下一个对称中心,之后找最大//O(n^2); 方法4(dp): 暴力改进: 辅助数组记录从i到j是否回文 P(i,j)= P(i+1,j-1)(如果S[i] = S[j])。类动规方程。 P(i,i)= 1,P(i,i+1)= if(S[i]= S[i+1]) 个人感觉没LCS好写,好想. 下面进入正题,传说 Manacher 能 O(n), 你信吗? 反正我不信. 我看了下, 别人的博客上来就说要分奇数偶数,然后加’#’,然后谁小于等于谁,然后贴代码. 所以决定认真写下本篇博客.解除疑惑. 想写代码,首先要懂道理,看别人代码,花了好长时间看懂了,昂,是这么一回事,等让自己写原题时

JS获取字符串实际长度(包含汉字)

匿名 (未验证) 提交于 2019-12-02 23:40:02
方法一: var jmz = { } ; jmz . GetLength = function ( str ) { ///<summary>获得字符串实际长度,中文2,英文1</summary> ///<param name="str">要获得长度的字符串</param> var realLength = 0 , len = str . length , charCode = - 1 ; for ( var i = 0 ; i < len ; i ++ ) { charCode = str . charCodeAt ( i ) ; if ( charCode >= 0 && charCode <= 128 ) realLength += 1 ; else realLength += 2 ; } return realLength ; } ; alert ( jmz . GetLength ( '测试测试ceshiceshi ) ) ; 方法二(更简洁的方法): var l = str . length ; var blen = 0 ; for ( i = 0 ; i < l ; i ++ ) { if ( ( str . charCodeAt ( i ) & 0xff00 ) != 0 ) { blen ++ ; } blen ++ ; } 方法三(更更简洁的方法): var

字符串长度填空

匿名 (未验证) 提交于 2019-12-02 23:40:02
试题描述 阅读程序,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 下面MyStrlen()函数的功能是计算指针p所指向的字符串的长度。 #include <stdio.h> unsigned int MyStrlen ( char * p ) { unsigned int len ; len = 0 ; for (; * p != ① ; p ++) { len ② ; } return ③ ; } int main () { char str [ 21 ]; gets ( str ); printf ( "%d" , MyStrlen ( str )); return 0 ; } 注意:请务必提交完整的程序代码,不要修改代码框架。 #include <stdio.h> unsigned int MyStrlen ( char * p ) { unsigned int len ; len = 0 ; for (;* p != '\0' ; p ++) { len ++; } return len ; } int main () { char str [ 21 ]; gets ( str ); printf ( "%d" , MyStrlen ( str )); return 0 ; } 转载请标明出处: 字符串长度填空 文章来源: https://blog

acwing 139. 回文子串的最大长度

情到浓时终转凉″ 提交于 2019-12-01 02:42:39
题面: 如果一个字符串正着读和倒着读是一样的,则称它是回文的。 给定一个长度为N的字符串S,求他的最长回文子串的长度是多少。 输入格式 输入将包含最多30个测试用例,每个测试用例占一行,以最多1000000个小写字符的形式给出。 输入以一个以字符串“END”(不包括引号)开头的行表示输入终止。 输出格式 对于输入中的每个测试用例,输出测试用例编号和最大回文子串的长度(参考样例格式)。 每个输出占一行。 输入样例: abcbabcbabcba abacacbaaaab END 输出样例: Case 1: 13 Case 2: 6题解:马拉车的模板题,这题用字符哈希偏复杂: Manacher算法,但是我们这道题目是锻炼我们的哈希水平,所以我们这里只说如何用哈希算法求解.作者忘记如何使用马拉车算法了… 上一道兔子兔子兔子的题目,我们知道判断两个字符串是否相等,可以使用字符串哈希,也就是将字符串算成P进制数值,然后区间和判断即可,那么这道题目我们需要一个正的字符串,还需要一个反的字符串,然后如果正字符串等于反的字符串,那么奇数回文串就2+1,偶数回文串就直接2即可.之所以要这么做,因为我们是要回文对不对,我们需要将回文拆解成为一个正字符串和一个反字符串,这样才好处理这道题目. 既然如此,我们可以算出一个前缀和,再算出一个后缀和,然后就可以知道,正字符串和一个反字符串

Delphi中补齐字符串长度

孤人 提交于 2019-11-30 19:57:56
函数功能:当Str不满Len长度时,在Str前自动填充FillStr以补足长度 function FillString(const Str: string; Len: Integer; FillStr: Char): string; begin Result:= StringOfChar(FillStr, Len - Length(Str)) + Str; end; 来源: CSDN 作者: 博帕尔2019 链接: https://blog.csdn.net/sidely/article/details/39341885

A1002--字符串长度

不羁岁月 提交于 2019-11-29 21:51:56
题目 在右侧我们给出了一个已经基本完成的程序,读入了一个字符串,调用了一个叫 str_len 的函数来计算这个字符串的长度,并输出。 聪明的你应该已经发现了,这个叫 str_len 的函数并没有完成,在不修改函数原型的情况下,请完成 str_len 函数,实现我们上述的功能吧。 样例输入复制 abcdefg 样例输出复制 7 import java.util.*; public class Main{ public static void main(String args[]){ Scanner input = new Scanner(System.in); String str = input.nextLine(); System.out.println(str_len(str)); } static int str_len(String str) { return str.length(); } } 来源: https://blog.csdn.net/zengxingyuluo/article/details/100935037