`
daning
  • 浏览: 90102 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

不使用任何中间变量计算一个字符串的长度

阅读更多
一个朋友去面试时候被问到这个题目。回来的时候大家讨论。

输入是一个指向字符串指针,要求不能用任何中间变量,计算出这个字符串的长度。

思路:字符串以'\0'结尾,指针可以自加(p++)。既然不能使用临时变量,那就用递归吧。虽然也使用了临时空间,不过不是程序员自己申请的,而是系统申请的。
判断指针p所指位置的值是否为'\0',如果是,结束函数,返回0。如果不是,说明字符串没有结束,p++,然后再调用判断p的值,并返回结果加1。

流程:
function(char* p)
    if (*p == '\0')
       return 0;
    else
       return function(++p) + 1;
用C++实现的代码如下
<!---->#include <iostream>
//compute Lenght Of String Without Any Other Variable
using namespace std;
int len(char a[])
{
    
if(*== '\0'
    {
        
return 0;
    } 
    
else 
    {
        
return len(++a) + 1;
    }
}

int main()
{
    
char a[] = "hello";
    
int i = len(a);
    cout 
<< "len: " << i << endl;
    getchar();
    
return 0;
}



分享到:
评论

相关推荐

    使用MATLAB进行字符串数组长度计算(附详细步骤).txt

    这个代码可以计算字符串数组中每个字符串的长度,并找出其中最长的字符串长度。具体来说,它首先创建了一个包含5个字符串的字符串数组`strArray`,然后使用`length()`函数计算每个字符串的长度,并将结果存储在向量`...

    判断2个字符串是否含有相同的字符

    (关于空间的占用,如果要用一个和字符串a一样长的数组counter来计录a中各起点对应与b最大重合子字符串,这个数组也要和a一样长,空间上也不合适,除非情形很特殊,a短b长,不然不如直接malloc()一个堆空间来储存...

    PHP字符串长度计算 - strlen()函数使用介绍

    在PHP中,函数strlen()返回字符串的长度,strlen()函数返回字符串所占的字节长度,一个英文字母、数字、各种符号均占一个字节,它们的长度均为1

    C 语言统计字符个数,可以直接编译使用

    尽管程序看起来较短,但它清晰地展示了统计字符串长度的基本思路,其注释和代码都清晰明了,适合初学者进行学习。 在main函数开始处,我们声明了一个大小为100的字符数组string用于存储用户输入的字符串,以及整型...

    C语言程序设计标准教程

     本程序中用赋值语句给num和name两个成员赋值,name是一个字符串指针变量。用scanf函数动态地输入sex和score成员值,然后把boy1的所有成员的值整体赋予boy2。最后分别输出boy2 的各个成员值。本例表示了结构变量的...

    javascript文档

    lastIndex 属性 返回在字符串中找到的最后一个成功匹配的字符位置。 lastIndexOf 方法 返回在 String 对象中最后出现子字符串的位置。 lastMatch 属性 ($) 从任何正则表达式搜索中返回最后匹配的字符。 lastParen...

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    获取字符串长度.asp 第13章(/14/) Matches集合与Macth对象.asp 指定忽略大小写.asp 获取Matches集合.asp 进行正则匹配替换.asp 进行正则匹配检验.asp ...

    JScript 语言参考

    lastIndex 属性 返回在字符串中找到的最后一个成功匹配的字符位置。 lastIndexOf 方法 返回在 String 对象中最后出现子字符串的位置。 lastMatch 属性 ($) 从任何正则表达式搜索中返回最后匹配的字符。 lastParen...

    微软JavaScript手册

    lastIndex 属性 返回在字符串中找到的最后一个成功匹配的字符位置。 lastIndexOf 方法 返回在 String 对象中最后出现子字符串的位置。 lastMatch 属性 ($) 从任何正则表达式搜索中返回最后匹配的字符。 lastParen...

    python 将字符串中的数字相加求和的实现

    计算字符串中所有数字的和,字符串中有数字和字母组合而成 如果出现连续数字,按照一个数操作 具体解释在代码行里: def sum_str(str1): len1=len(str1) #首先将字符串str1的长度赋值给len1 sum = n = 0 #建立...

    VBA常用技巧

    技巧158使用字符串函数385 技巧159使用日期函数387 技巧160判断是否为数值391 技巧161格式化数值、日期和时间392 技巧162个人所得税自定义函数394 技巧163人民币大写函数396 技巧164列号转换为列标398 技巧165判断...

    汇编语言 20个练习题目 代码加实验报告

    5.4 试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示‘MATCH’,若不相同则显示‘NOT MATCH’。 5.5 试编写一程序,要求能从键盘接收一个个位数N,然后响铃N次。 5.6 编写程序,将...

    IOS开发之路–C语言数组和字符串

    而在C语言中是没有String类型的,那么如果要表示一个字符串,就必须使用字符串数组。今天主要就介绍如下三个方面: 一维数组 多维数组 字符串 一维数组 一维数组操作比较简单,但是需要注意,数组长度必须是固定的...

    VBScript 语言参考中文手册CHM

    InStrRev 函数 返回一个字符串在另一个字符串中出现的位置,是从字符串的末尾算起。 Int 函数 返回数的整数部分。 整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 ...

    汇编语言程序中的字符串表达式及运算符

    编译器所支持的字符串长度为512字节。常用的与字符串表达式相关的运算符如下:  ①LEN运算符  LEN运算符返回字符串的长度(字符数),以X表示字符串表达式,其语法格式如下。  : LEN: X  ②CHR运算符  ...

    达梦数据库_SQL语言手册

    达梦数据库_SQL语言手册.pdf 数据库快照定义语句 数据库快照删除语句 第章数据查询语句和全文检索语句 ...注:这个限制长度只针对建表的情况,在定义变量的时候,可以不受这个限制长度的限 制 数值数据类型

    VBSCRIPT中文手册

    InStrRev 函数 返回一个字符串在另一个字符串中出现的位置,是从字符串的末尾算起。 Int 函数 返回数的整数部分。 整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 ...

    VBScript 语言参考

    InStrRev 函数 返回一个字符串在另一个字符串中出现的位置,是从字符串的末尾算起。 Int 函数 返回数的整数部分。 整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 ...

    vb Script参考文档

    InStrRev 函数 返回一个字符串在另一个字符串中出现的位置,是从字符串的末尾算起。 Int 函数 返回数的整数部分。 整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 ...

    VBSCRIP5 -ASP用法详解

    InStrRev 函数 返回一个字符串在另一个字符串中出现的位置,是从字符串的末尾算起。 Int 函数 返回数的整数部分。 整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 ...

Global site tag (gtag.js) - Google Analytics