【C语言】实现一个函数求字符串长度(不能创建第三方变量)

//实现一个函数求字符串长度(不能创建第三方变量)
#include <stdio.h>
#include <assert.h>
int my_strlen(const char *p)
{
	assert(p);
	if (*p == '\0')
		return 0;
	else
		return 1 + my_strlen(++p);
}
int main()
{
	char *p = "abcdefg";
	printf("%d\n", my_strlen(p));
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-13 12:03:11

【C语言】实现一个函数求字符串长度(不能创建第三方变量)的相关文章

【C语言】编写一个函数,求字符串长度

//编写一个函数,求字符串长度 #include <stdio.h> #include <assert.h> int my_strlen(const char *p) { int len=0; assert(p); while (*(p++)) { len++; } return len; } int main() { char *p = "abcdef"; printf("%d\n", my_strlen(p)); return 0; }

【c语言】实现一个函数,求字符串的长度,不允许创建第三方变量

// 实现一个函数,求字符串的长度,不允许创建第三方变量. #include <stdio.h> #include <assert.h> int my_strlen_no(char const *p) { assert(p != NULL); if (*p == NULL) return 0; else return (1 + my_strlen_no(p + 1)); } int main() { char *p = "zhaoyaqian"; printf(

笔试题: 不使用中间变量求const字符串长度,即实现求字符串长度库函数strlen函数

笔试题: 不使用中间变量求const字符串长度,即实现求字符串长度库函数strlen函数. 函数接口声明如下:int my_strlen(const char *p); strlen函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符'\0'. 而返回的长度大小不包括'\0'. #include <stdio.h> #include <assert.h> //使用中间变量 //int my_strlen(const  char *str) //{ //   ass

求字符串长度函数实现的三种方法

/* Date: 10/03/19 12:49 Description: 求字符串长度函数实现的三种方法*/ #include<stdio.h> int strlen1(char *s);int strlen2(char *s);int strlen3(char *s); int main(void) { char str[]="The function to test my length."; printf("The length1 is:%d\n",

写一个函数对字符串数组排序,使所有变位词都相邻

题目 写一个函数对字符串数组排序,使得所有的变位词都相邻. 解答 首先,要弄清楚什么是变位词.变位词就是组成的字母相同,但顺序不一样的单词. 比如说:live和evil就是一对变位词.OK,那么这道题目的意思就很清楚了, 它并不要求我们将字符串数组中的字符串按字典序排序,否则我们直接调用STL中的sort 函数就可以了.它要求我们在排序的过程中,按照变位词的准则来排序. 这种情况下,我们还是可以调用sort函数,不过要自己写一个对比函数. 一般情况下我们如果要排序一个长度为n的数组A,我们可以这

字符串操作1 - 递归与非递归两种方法求字符串长度

1 //递归求字符串的长度 2 int RecurseLength(const char *str) 3 { 4 if(str == NULL || *str == '\0') 5 return 0; 6 7 if(*str == '\0') 8 return 0; 9 return RecurseLength(str+1) + 1;//返回当前字符数,再递归处理下一个字符 10 } 11 12 13 14 15 16 //非递归求字符串长度 17 int NonRecurseLength(co

Java面试题从零开始:写一个函数把字符串反转

前言:为了能够找一个代表我从零开始的诗词,我挖空心思去找,然而怎么也找不到一个贴合我心意的,被迫上了度娘也不曾找到.真想把小学一年级的语文课本拿出来好好的通读一遍,肯定能找到答案. 好了,既然找不到也不必耿耿于怀了.今天读了<高效能程序员的修炼>第四章,发现自己好烂,如果按照作者的看法,我是无论如何都入不了他的法眼,于是乎,我告诉自己,从零开始,把作者提出的面试题按照Java来写一遍,无论是参考别人还是自己略能想得到的办法,亲自动手把它们敲出来,并且记录下来吧! 写一个函数把字符串反转,作为本

sizeof()和strlen()在求字符串长度时的差别

sizeof()函数输出字符串长度时会把结束符计算在内: strlen()函数输出字符串长度时不会把结束符计算在内. 如图:

数组-----求字符串长度

//求字符串长度 #include"stdafx.h" #include<iostream> using namespace std; void main(){ char s[201]; int i = 0; cout << "Please enter a string(ended with enter):" << endl; cin.getline(s, 200); //cin.getline()的使用 while (s[i])