改写C语言程序

Python011

改写C语言程序,第1张

#include <stdio.h>

int main ( ) 

    char ch

    scanf("%c",&ch)

    ch=(ch>='a'&& ch<='z') ? (ch-32):ch

    printf("%c\n",ch)

}

只需要修改ch=(ch>='a'&&ch<='z') ? (ch-32):ch这一行就行,这是一个三元表达式,等同于:

if (ch>='a'&&ch<='z')

ch = ch - 32

ch>='a'&&ch<='z' 这个是小写字母的取值范围,如果是小写字母,则变换成大写字母,大写字母和小写字母ASCII码正好差32,所以减32就可以变成大写字母.

你这样malloc里面没有写分配内存的类型,但是看你这里是char,所以可以这样写

printf("%d",sizeof(char)*(strlen(b)+1))

sizeof(char)是类型的字节,然后乘上你分配的大小

但是如果里面的a是int型的话就不能这样了,因为一个int占4个字节,那么你分配的字节个数是(strlen(b)+1)/4个元素,其实malloc分配的字节就是malloc里面的参数