一道C语言题谁会,给我讲一下,为什么是那样写的,给注释一下。重重有赏。。。

[复制链接]
查看11 | 回复2 | 2011-2-22 15:51:20 | 显示全部楼层 |阅读模式
/*35.下列给定程序中,fun函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的"单词"是指由空格隔开的字符串)。例如,若输入:

I am a student to take the examination.
则应输出:I aM A studenT tO takE thE examination.

试题程序:*/
#include
#include
#include
#include
void fun ( char *p )
{
int k = 0;
for( ; *p; p++ )
/********found********/
if( k )
{
if(*p==' ')
{

k = 0;

/********found********/

* (p-1) = toupper ( * (p-1) );
}
}
else
k = 1;
}
void main()
{
char chrstr[64];
int d;
printf("\nPlease enter an english sentence within 63 letters: ");
gets(chrstr);
d=strlen(chrstr) ;
chrstr[d]=' ' ;
chrstr[d+1] = 0 ;
printf("\n\nBefor changing: %s", chrstr);
fun(chrstr);
printf("\nAfter changing:\n%s", chrstr);
}

回复

使用道具 举报

千问 | 2011-2-22 15:51:20 | 显示全部楼层
#include#include#include#includevoid fun ( char *p ){ int k = 0;
//k为标识 for( ; *p; p++ )
//依次读取字符串的内容/********found********/if( k )
//当k为1时进行以下操作{ if(*p==' ')
//读取到当前p的值,如果为空格符,说明一个单词刚结束,所以要对它的前一个字符操作 {
k =
回复

使用道具 举报

千问 | 2011-2-22 15:51:20 | 显示全部楼层
main函数中先输入一段字母,判断是否为空,不为空的话执行fun函数,for( ; *p; p++ )中每执行一次p++执行一次if,查找这段字母中的空格,将空格前的字母改为大写,知道p++为最大值,最后输出修改后的这段字母。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行