今天看了个有意思的程序,用递归就能求解字符串长度。而后本身敲敲代码试试看。调试
#include <stdio.h> #include <stdlib.h> #include <assert.h> #define MAXSIZE 50 int mystrlen(const char *strDest) { assert(NULL != strDest); //assert宏入口检测 if('\0' == *strDest) //字符串结束 return 0; else return (1 + mystrlen(++strDest)); //递归求解字符串长度 } int main(void) { char *ch; int len; ch = (char*)malloc(sizeof(char)*MAXSIZE); printf("Input a string:"); scanf("%s", ch); len = mystrlen(ch); printf("%d", len); printf("\n"); return 0; }
同时学到了用调试宏作入口检测的方法,使程序更加完善。code