一个字符串,不用循环,不用库函数,求长度
2017-06-25 20:57
267 查看
/* 法一:传入长度做参数 */ int strlen_x(const char * pstr,int &len) { char * pTemp = (char*)pstr; if (*pstr == '\0') return len; len++; pTemp = pTemp++; return strlen_x(pTemp, len); } /* 法二 不传入长度参数 http://blog.csdn.net/stpeace/article/details/8096629 */ int GetstrLen(char * pstr) { return *pstr ? GetstrLen(pstr + 1) + 1 : 0; } int _tmain(int argc, _TCHAR* argv[]) { char *pstr = "sadfjqaj"; int len = strlen(pstr); printf("strlen = %d\n",len); len = 0; len = strlen_x(pstr, len); printf("strlen_x = %d\n", len); len = GetstrLen(pstr); printf("GetstrLen = %d\n", len); return 0; }
两种写法思路一致,实现上我的第一种稍微麻烦了点
相关文章推荐
- 一个字符串,不用循环,不用库函数,求长度
- 不用库函数实现求字符串的长度
- strlen 是C语言的一个库函数计算字符串长度
- C、C++中,不用局部变量以及库函数,求给定字符串长度
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 今天学习时突然联想到这样一个有趣但无用的问题:利用C语言(不能是其他语言)求两个整数的较大/小值-----要求不用if、三目?、switch、循环、数组、加减乘除求余、位运算符以及任何库函数
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 将一个长度为n的字符串向左循环移动m位
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。 提交
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 字符串的循环左移,不用库函数,三步循环
- 不使用任何循环及库函数,计算字符串长度
- 将一个长度为n的字符串向左循环移动m位
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 写一个返回字符串长度的函数,函数里面不用局部变量,不能调用系统函数strlen
- C#用一个循环[等效]取出字符串中的数字