【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("长度是:%d\n", my_strlen_no(p));
	return 0;
}

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

时间: 2024-10-13 16:45:39

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

【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_strl

【c语言】实现一个函数,求字符串的长度

// 实现一个函数,求字符串的长度 #include <stdio.h> #include <assert.h> int my_strlen(char const *p) { int count = 0; assert(p != NULL); while(*p) { count++; p++; } return count; } int main() { char *p = "zhaoyaqian"; printf("长度是:%d\n", m

C语言中求字符串的长度

在C语言中求字符串的长度,可以使用sizeof()函数和strlen()函数,后者需要引入string.h (#include <string.h>) 因为C语言字符串是以 \0 结尾表示结束的,如: char str1[] = {'h','e','l','l','o','\0'}; 使用sizeof(str1) 结果为:6,因为包括 \0; 使用strln(str1)结果为:5,不包括 \0, 所以只求字符串中内容的长度,就使用strlen()函数 另: sizeof()函数,既可以用来计算

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

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

C++刷题——2706: 编写一个函数求最大的n 值。

2706: 编写一个函数求最大的n 值. /* Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作者:陈丹妮 * 完成日期:2015年 5 月 26 日 * 版 本 号:v1.0 */ Description 编写一个函数求满足以下条件的最大的n.:12+22+32+-+n2<k,k值由键盘输入(1000<k<=2000) Sample Input 1500 Sample Output 17 #

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

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

输入两个实数,用一个函数求出它们之和

/*p180 例7.4 输入两个实数,用一个函数求出它们之和 解题思路:首先要定义add函数,它为float型,它应有两个参数,也应为float型. 特别注意:要对add函数进行声明.*/ #include<stdio.h>int main(){ float add(float x,float y); //对add函数作声明 float a, b, c; printf("please enter a and b:"); //提示输入 scanf("%f,%f&qu

封装一个函数, 求数组的和.

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><script> //封装一个函数, 求数组的和. //实例: console.log( sum([1, 2, 3, 4, 5]) ); 返回结果: 15; function

C语言 编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列

编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列. #include <stdio.h> #include <string.h> #include <assert.h> int reverse_string(char * str) { assert(str); int len=strlen(str); char *ch=str+len-1; while(len>1) { char tmp=*st