多方法实现对字符串长度的统计

方法一:

使用计数器的方法进行统计,最容易想到的方法;

#include <stdio.h>
#include <stdlib.h>
  #include <assert.h>
 
int my_strlen(char *string)
{
    assert(srring!=NULL);
    int count = 0;
    char *pstr = string;
    while (*pstr)
    {
    count++;
    pstr++;
    }
    return count;
}

方法二:

通过递归的方式是实现(该方法会加大系统开销,效率相对较低);

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
  
int my_strlen(char *string)
{
    assert(string != NULL);
    char *pstr = string;
    if (*pstr == ‘\0‘)
        return 0;
    else
        return 1 + my_strlen(pstr + 1);
}

方法三:

使用指针统计字符串的长度

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
  
int my_strlen(char *string)
{
    assert(string != NULL);
    char *pstart = string;
    char *pend = string;
    while (*pend)
    {
        pend++;
    }
    return pend - pstart;
}
时间: 2025-01-07 17:25:47

多方法实现对字符串长度的统计的相关文章

根据NSString字符串长度自动改变UILabel的frame

相信大家都遇到过这种需求.如果一个不慎,容易做成这个模样: 话不多说,上代码. 1.首先,设置UILabel的相关属性 1 UILabel *tmpLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 200, [UIScreen mainScreen].bounds.size.width - 20, 20)]; 2 [tmpLabel setNumberOfLines:0]; 3 [self.view addSubview:tmpLabel

objective-c中字符串长度计算

我们知道,在c语言中,使用sizeof ()计算在内存中占用的字节数, 引用string.h后,使用strlen()计算字符串的长度(不包含\0). 而在object-c中, "length"这个方法,可以返回字符串的长度. 比如:NSString * str [email protected]"12345";int a = 0; a = [str  lenght];此时a的值就是字符串str的长度,也就是5. 值得一提的是oc 中length方法在计算字符串长度时

统计NSString中英文字符串长度

计算NSString的字符长度,用length方法Returns the number of Unicode characters in the receiver,既是英文字符和中文汉字都是一个字符长度,如@“abcde我的”长度为7,而此长度和微博的输入字数实际上是不符的,在微博中,它的长度为5(实际是4.5,“abcde我的f” 的长度也是5),所以如果在UITextView中限制字符的长度,需要重新计算,如下: -------------------- 转载:http://mobileso

对几种获取字符串长度的方法进行性能比较

测试环境: 操作系统:CentOS release 6.8 (Final) 操作环境:vi编辑器 任务:对获取字符串长度的几种统计方法的性能比较. 测试数据如下: 1.变量自带的获取长度的方法 [[email protected] scripts]# time for n in {1..10000};do char=`seq -s "skyboy" 100`;echo ${#char} &>/dev/null;done real    0m19.712s user    

php截取中文字符串,英文字符串,中英文字符串长度的方法

今天学习了php函数截取中文字符串,英文字符串,中英文字符串的函数使用方法.对中英文截取方法不理解,此处先做记录. PHP自带的函数如strlen().mb_strlen()都是通过计算字符串所占字节数来统计字符串长度的,一个英文字符占1字节.例: $enStr = ‘Hello,China!’;echo strlen($enStr); // 输出:12 而中文则不然,做中文网站一般会选择两种编码:gbk/gb2312或是utf-8.utf-8能兼容更多的字符,所以受到很多站长的喜爱.gbk与u

linux shell脚本编程笔记(四): 获取字符串长度的七种方法

获取字符串长度的七种方法 1. \${#str} 2.awk的length 备注:1) 最好用{}来放置变量2) 也可以用length($0)来统计文件中每行的长度 3.awk的NF 备注: -F为分隔符,NF为域的个数,即单行字符串的长度 4.wc的-L 备注: -L参数1) 对多行文件来说,表示打印最长行的长度! 82,表示/etc/passwd文件最长行的长度为822) 对单行字符串而言,表示当前行字符串的长度! 5.wc -c 备注: 1) -c参数: 统计字符的个数2) -n参数: 去

Shell脚本中计算字符串长度的5种方法及从文本获取某一行

有时在Linux操作系统中需要计算某个字符串的长度,通过查询资料整理了下目前Shell中获取字符串的长度的多种方法,在这里分享给大家,方法如下: 方法1: 使用wc -L命令wc -L可以获取到当前行的长度,因此对于单独行的字符串可以用这个简单的方法获取,另外wc -l则是获取当前字符串内容的行数. 代码如下: echo "abc" |wc -L 方法2: expr length string使用expr length可以获取string的长度 方法3: awk获取域的个数,但是如果大

关于判断字符串长度的方法

关于判断字符串长度的方法 在一个中英文混合的字符串中,怎么判断它的长度,按英文占一个字节,汉字两个字节的标准比如“你好ni”,长度就是6        “abcd” 长度是4有什么好办法吗,介绍一下,谢谢 -(NSUInteger) unicodeLengthOfString: (NSString *) text {    NSUInteger asciiLength = 0; for (NSUInteger i = 0; i < text.length; i++) { unichar uc =

黑马程序员——java——自定义一个比较器,按照字符串的长度升序的方法来比较字符串进行储存

自定义一个比较器,按照字符串的长度升序的方法来比较字符串进行储存 import java.util.Comparator; import java.util.Iterator; import java.util.TreeSet; class Mycompara implements Comparator { //自定义一个比较器,按照字符串的长度来比较字符串,然后对其进行储存 //如果字符串的长度一样长了后,再依据字符内容进行排序 public int compare(Object o1, Ob