①目标
把一句英文句子中的每一个单词的首字母改成大写。
~
②命令行
#include< stdio.h>
#include< stdlib.h>
#include< ctype.h>字符函数库
#include< string.h>字符串函数库
~
③定义函数
void upfst(char *p)
/*upfst是upper first的缩写,即首字母变大写。*/
{int k=0;
for (;*p;p++)
/*p++用于遍历单词和句子。*/
if(k)
/*k的初始值为0,即if(k)为假,执行后面else 语句。*/
{if(*p==' ')k=0;}
/*由else 语句返回,k=1,if(k)为真,执行此词语。
如果在单词中部,遇到字母,if(*p==' ')为假,又返回p++向后遍历,直到遇到空值。
如果遇到字母是空值,就把k标志为0,表示没有找到首字母。*/
else
{if(*p!=' '){k=1;*p=toupper(*p);}}
/*如果遇到首字母不是空值,就将其变成大写。同时标志值k=1,表示找到了首字母。*/
}
~
④主函数(调用)
void mian()
{char chrstr[80];
/*chrstr是char string的缩写,即字符串。此处用字符串数组表示英语句子。*/
printf("\nPlease enter an English text line:");
gets(chrstr);
printf("\n Bofore changing: %s ",chrstr);
upfst(chrstr);
/*将字符串数组chrstr [ ]的首字母变成大写。*/
printf("\nAfter changing:%s",chrstr);
}