1、取出整数各位数字
#include<stdio.h> void separate(int n) { if (n > 9) { separate(n / 10); } printf("%d ", n%10); } int main() { unsigned int num = 0; printf("请输入需要分解的数字:"); scanf_s("%d", &num); separate(num); }
2、不生成临时变量计算字符串字数(即不使用strlen库函数而是用自定义函数)
#include<stdio.h> int get_stringlen(char* str) { int count = 0; while (*str != '\0') { count++; str++; } return count; } int main() { char arr[] = "Avalon"; int len = 0; len = get_stringlen(arr); printf("Result:%d", len); }
get_stringlen内传入参数不是整个数组,而是数组首个元素的地址,所以用char* str(str是随意定义的名字),while的条件*str是做解引用逐个取字符串里的字
递归的函数写法是
int get_stringlen(char* str) { if (*str != '\0') return 1 + get_stringlen(str + 1); else return 0; }
比较需要在意的是递归部分的get_stringlen(str+1)的写法。
标签:char,get,int,学习,num,str,stringlen From: https://www.cnblogs.com/AvalonForLovers/p/17641208.html