一个朋友去面试时候被问到这个题目。回来的时候大家讨论。
输入是一个指向字符串指针,要求不能用任何中间变量,计算出这个字符串的长度。
思路:字符串以'\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(*a == '\0')
{
return 0;
}
else
{
return len(++a) + 1;
}
}
int main()
{
char a[] = "hello";
int i = len(a);
cout << "len: " << i << endl;
getchar();
return 0;
}
分享到:
相关推荐
这个代码可以计算字符串数组中每个字符串的长度,并找出其中最长的字符串长度。具体来说,它首先创建了一个包含5个字符串的字符串数组`strArray`,然后使用`length()`函数计算每个字符串的长度,并将结果存储在向量`...
(关于空间的占用,如果要用一个和字符串a一样长的数组counter来计录a中各起点对应与b最大重合子字符串,这个数组也要和a一样长,空间上也不合适,除非情形很特殊,a短b长,不然不如直接malloc()一个堆空间来储存...
在PHP中,函数strlen()返回字符串的长度,strlen()函数返回字符串所占的字节长度,一个英文字母、数字、各种符号均占一个字节,它们的长度均为1
尽管程序看起来较短,但它清晰地展示了统计字符串长度的基本思路,其注释和代码都清晰明了,适合初学者进行学习。 在main函数开始处,我们声明了一个大小为100的字符数组string用于存储用户输入的字符串,以及整型...
本程序中用赋值语句给num和name两个成员赋值,name是一个字符串指针变量。用scanf函数动态地输入sex和score成员值,然后把boy1的所有成员的值整体赋予boy2。最后分别输出boy2 的各个成员值。本例表示了结构变量的...
lastIndex 属性 返回在字符串中找到的最后一个成功匹配的字符位置。 lastIndexOf 方法 返回在 String 对象中最后出现子字符串的位置。 lastMatch 属性 ($) 从任何正则表达式搜索中返回最后匹配的字符。 lastParen...
获取字符串长度.asp 第13章(/14/) Matches集合与Macth对象.asp 指定忽略大小写.asp 获取Matches集合.asp 进行正则匹配替换.asp 进行正则匹配检验.asp ...
lastIndex 属性 返回在字符串中找到的最后一个成功匹配的字符位置。 lastIndexOf 方法 返回在 String 对象中最后出现子字符串的位置。 lastMatch 属性 ($) 从任何正则表达式搜索中返回最后匹配的字符。 lastParen...
lastIndex 属性 返回在字符串中找到的最后一个成功匹配的字符位置。 lastIndexOf 方法 返回在 String 对象中最后出现子字符串的位置。 lastMatch 属性 ($) 从任何正则表达式搜索中返回最后匹配的字符。 lastParen...
计算字符串中所有数字的和,字符串中有数字和字母组合而成 如果出现连续数字,按照一个数操作 具体解释在代码行里: def sum_str(str1): len1=len(str1) #首先将字符串str1的长度赋值给len1 sum = n = 0 #建立...
技巧158使用字符串函数385 技巧159使用日期函数387 技巧160判断是否为数值391 技巧161格式化数值、日期和时间392 技巧162个人所得税自定义函数394 技巧163人民币大写函数396 技巧164列号转换为列标398 技巧165判断...
5.4 试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示‘MATCH’,若不相同则显示‘NOT MATCH’。 5.5 试编写一程序,要求能从键盘接收一个个位数N,然后响铃N次。 5.6 编写程序,将...
而在C语言中是没有String类型的,那么如果要表示一个字符串,就必须使用字符串数组。今天主要就介绍如下三个方面: 一维数组 多维数组 字符串 一维数组 一维数组操作比较简单,但是需要注意,数组长度必须是固定的...
InStrRev 函数 返回一个字符串在另一个字符串中出现的位置,是从字符串的末尾算起。 Int 函数 返回数的整数部分。 整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 ...
编译器所支持的字符串长度为512字节。常用的与字符串表达式相关的运算符如下: ①LEN运算符 LEN运算符返回字符串的长度(字符数),以X表示字符串表达式,其语法格式如下。 : LEN: X ②CHR运算符 ...
达梦数据库_SQL语言手册.pdf 数据库快照定义语句 数据库快照删除语句 第章数据查询语句和全文检索语句 ...注:这个限制长度只针对建表的情况,在定义变量的时候,可以不受这个限制长度的限 制 数值数据类型
InStrRev 函数 返回一个字符串在另一个字符串中出现的位置,是从字符串的末尾算起。 Int 函数 返回数的整数部分。 整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 ...
InStrRev 函数 返回一个字符串在另一个字符串中出现的位置,是从字符串的末尾算起。 Int 函数 返回数的整数部分。 整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 ...
InStrRev 函数 返回一个字符串在另一个字符串中出现的位置,是从字符串的末尾算起。 Int 函数 返回数的整数部分。 整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 ...
InStrRev 函数 返回一个字符串在另一个字符串中出现的位置,是从字符串的末尾算起。 Int 函数 返回数的整数部分。 整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 ...