. 编写函数,要求用指针做形参,分别实现以下功能:

61 阅读1分钟

(1)求一个字符串长度 (2)在一个字符 串中统计大写字母的个数 (3)在一个字符串中统计数字字符的个数

#include <stdio.h>
未使用的len参数,因为字符串以 '\0' 结尾,不需要长度参数

// (1) 计算字符串长度(不需要len参数)
int string_length(const char *str)
{
    const char *p = str; //
    while(*p) p++;//将指针移动到'\0'那个元素位置,然后退出循环
    return p - str; //str是第一个元素的地址,此时p是'\0'那个元素位置,相减的得元素个数;
}

// (2) 统计大写字母个数
int count_uppers(const char *str)
{
    int count = 0;//从0开始记数
    while(*str) { //直到指针移动到'\0'处,则退出循环
        if(*str >= 'A' && *str <= 'Z') count++; //若是大写字母,则数量+1 
        str++;//指针向后移动,再去判断下一个元素;
    }
    return count;
}

// (3) 统计数字字符个数
int count_digits(const char *str)
{
    int count = 0;
    while(*str) {
        if(*str >= '0' && *str <= '9') count++;
        str++;
    }
    return count;
}

int main()
{
    char arr[] = "Kyire123";
    
    // (1) 计算字符串长度
    int len = string_length(arr);
    printf("字符串长度: %d\n", len);
    
    // (2) 统计大写字母
    int uppers = count_uppers(arr);
    printf("大写字母个数: %d\n", uppers);
    
    // (3) 统计数字字符
    int digits = count_digits(arr);
    printf("数字字符个数: %d\n", digits);
    
    return 0;
}