#include<stdlib.h>
int main()
{
const char ch='A'
int i,line=37,ls=line/2
for(ls=line/2ls>=0ls--)
{
for(i=0i<lsi++)
{
printf(" ")
}
printf("%c",ch)
if(ls+1<=line/2)
{
for(i=0i<line-2*ls-2i++)
{
if(ls==line/4)
{
printf("%c",ch)
}
else
{
printf(" ")
}
}
printf("%c",ch)
}
printf("\n")
}
system("PAUSE")
return EXIT_SUCCESS
}
C语言中大写字母变为相应的小写字母有多种实现方式,如有一个变量a存储了一个大写字母,则方式1:直接用大写字母加上大写字母与小写字符的ascii码差值32,如a=a+32即为对应的小写字母;
方式2:如果不记得这个差值是多少,可以直接用该大写字母减去'A'然后再加上'a'即可,如a=a-'A'+'a'即为对应的小写字母;
方式3:直接使用函数tolower进行转换,该函数在头文件#include <ctype.h>中,如a=tolower(a)
本程序最后输出的A是小写,不是大写。这句条件语句是关键性的:
if(p[i]==' '&&islower(p[i-1])) p[i-1]=p[i-1]-'a'+'A'
这句条件语句的意思是: 如果 本字符是 空格,前面一个字符 是小写字母,那么把前面那个小写字母改变成 大写字母。其余不变。
(小写字母与大写字母 编码之差 是 'a'-'A'). 小写变大写 是 p[i-1]=p[i-1]-'a'+'A'
字符串 "ab cd EFG!" 中满足 条件的 是 b 和 d, 所以程序输出: aB cD EFG!
里面的a是小写。