我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

天宇魔羯



性别: 帅哥 状态: 该用户目前不在线
等级: 人见人爱
发贴: 4600
威望: 0
浮云: 1189
在线等级:
注册时间: 2007-05-16
最后登陆: 2010-04-16

5come5帮你背单词 [ sample /'sa:mpl/ n. 样品,标本;vt. 抽样检查 ]


C程序

#include "stdio.h"
int change(char *c,int fg)
{ if(*c=='')
L1:return 1;
    else
        if(fg&&*c<='z'&&*c>='a')
            *c+='A'-'a';
      return 0;
}
void main()
{ int flag=1;
    char  ch;
do
  { ch=getchar();
    flag=change(&ch,flag);
    putchar(ch);
  }while(ch!='\n');
}
输入:This  is a book!
输出:This Is A Book!
可总觉得应该是THIS IS A BOOK!
望达人来解释一下下哈
顶端 Posted: 2008-04-12 14:15 | [楼 主]
calitrean



年度之星奖
性别: 帅哥 状态: 该用户目前不在线
头衔: WCDMA民工Q某 
等级: 成就辉煌
家族: 单身贵族
发贴: 11025
威望: 0
浮云: 2296
在线等级:
注册时间: 2007-01-16
最后登陆: 2023-11-19

5come5帮你背单词 [ communism /'komjunizəm/ n. 共产主义 ]


LZ在int change(char *c,int fg)函数里没有用循环,因此只判断第一个字符而忽略了后面的字符
顶端 Posted: 2008-04-12 14:21 | [1 楼]
天宇魔羯



性别: 帅哥 状态: 该用户目前不在线
等级: 人见人爱
发贴: 4600
威望: 0
浮云: 1189
在线等级:
注册时间: 2007-05-16
最后登陆: 2010-04-16

5come5帮你背单词 [ chemist /'kemist/ n. 化学家,(英)药剂师 ]


想知道(*c=='')是什么意思,C指针指向。。。?
顶端 Posted: 2008-04-12 14:25 | [2 楼]
calitrean



年度之星奖
性别: 帅哥 状态: 该用户目前不在线
头衔: WCDMA民工Q某 
等级: 成就辉煌
家族: 单身贵族
发贴: 11025
威望: 0
浮云: 2296
在线等级:
注册时间: 2007-01-16
最后登陆: 2023-11-19

5come5帮你背单词 [ cut /kΛt/ v. & n. 切,割,削减 ]


  else
        if(fg&&*c<='z'&&*c>='a')
            *c+='A'-'a';
      return 0;
改成
  else
        while(fg&&*c++!='\0'&&*c<='z'&&*c>='a')
            *c+='A'-'a';
      return 0;
顶端 Posted: 2008-04-12 14:27 | [3 楼]
笑一个



性别: 帅哥 状态: 该用户目前不在线
头衔: 小将军
等级: 人见人爱
发贴: 3584
威望: 5
浮云: 1129
在线等级:
注册时间: 2007-03-09
最后登陆: 2008-06-29

5come5帮你背单词 [ sum /sΛm/ n. 总数,总和,金额,算术;v. 总结,概括,估量,估计 ]


#include "stdio.h"
int change(char *c,int fg)
{ if(*c==' ')
return 1;
    else
      if(*c<='z'&&*c>='a')[backcolor=#FF0000]        *c+='A'-'a';
      return 0;
}
void main()
{ int flag=1;
    char  ch;
do
  { ch=getchar();
    flag=change(&ch,flag);
    putchar(ch);
  }while(ch!='\n');
}
我改动了一下,把那个判断flag的条件去掉了
运行了一下
就对了
顶端 Posted: 2008-04-12 14:27 | [4 楼]
天宇魔羯



性别: 帅哥 状态: 该用户目前不在线
等级: 人见人爱
发贴: 4600
威望: 0
浮云: 1189
在线等级:
注册时间: 2007-05-16
最后登陆: 2010-04-16

5come5帮你背单词 [ truly /'tru:li/ ad. 正确地,事实上,真诚地 ]


谢谢蝈蝈们了哈
顶端 Posted: 2008-04-12 14:28 | [5 楼]
calitrean



年度之星奖
性别: 帅哥 状态: 该用户目前不在线
头衔: WCDMA民工Q某 
等级: 成就辉煌
家族: 单身贵族
发贴: 11025
威望: 0
浮云: 2296
在线等级:
注册时间: 2007-01-16
最后登陆: 2023-11-19

5come5帮你背单词 [ realm /'relm/ n. 领域,范畴,王国,国土 ]


Quote:
引用第2楼天宇魔羯于2008-04-12 14:25发表的  :
想知道(*c=='')是什么意思,C指针指向。。。?

表示C指向的地址的内容是个空字符???那用(*c=='\0')
顶端 Posted: 2008-04-12 14:35 | [6 楼]
第二个太阳



性别: 帅哥 状态: 该用户目前不在线
头衔: 我要鸡蛋
等级: 前途无量
发贴: 5594
威望: 1
浮云: 1676
在线等级:
注册时间: 2004-11-26
最后登陆: 2008-06-29

5come5帮你背单词 [ cost /kost/ n. 价格,成本,费用;v. 花费,(使)损失 ]


这个程序的本意就应该是“this is a book!" ->"This Is A Book!"
if(*c=='')  这句应该是 if(*c==' ')  那应该是个空格
Copy code
#include "stdio.h"
int change(char *c,int fg)
{ if(*c==' ')         
    L1:return 1;        // 判断空格,返回1,更新flag=1,使空格的下一个字符被转大写
else
      if(fg&&*c<='z'&&*c>='a')        //由flag 的值决定字符是否转换大写
      *c+='A'-'a';
      return 0;                      //转换了大写后flag值更新为0,也就说只转换空格后的第一个字母为大写,后面的flag都为0,不会转换,直到判断到空格。
}
void main()
{ int flag=1;            //用于标识下一个字符是否要被转大写,初始值为 1 真 ,
char ch;
do
{  ch=getchar();            //挨个从缓冲区中取出字符,每次循环取一个字符
    flag=change(&ch,flag);        //由flag 的值决定字符是否转换大写,同时更新flag的值,对应下一个字符。每次循环处理一个字符
    putchar(ch);                  //每次循环输出一个字符
}while(ch!='\n');
}
顶端 Posted: 2008-04-12 14:57 | [7 楼]
springdew



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 936
威望: 0
浮云: 0
在线等级:
注册时间: 2005-12-29
最后登陆: 2024-07-12

5come5帮你背单词 [ specimen /'spesimin/ n. 样本,标本 ]


Quote:
引用第7楼第二个太阳于2008-04-12 14:57发表的  :
这个程序的本意就应该是“this is a book!" ->"This Is A Book!"
if(*c=='')  这句应该是 if(*c==' ')  那应该是个空格
[code]#include "stdio.h"
int change(char *c,int fg)
{ if(*c==' ')         
.......

高手,很强,正解!
顶端 Posted: 2008-04-12 15:04 | [8 楼]
第二个太阳



性别: 帅哥 状态: 该用户目前不在线
头衔: 我要鸡蛋
等级: 前途无量
发贴: 5594
威望: 1
浮云: 1676
在线等级:
注册时间: 2004-11-26
最后登陆: 2008-06-29

5come5帮你背单词 [ enrol // vt. 登记,编入,使入学,使入伍 ]


开始
初始化 flag=1->
't'='T' flag=0 ->
  'h'='h' flag=0 ->
  'i'='i' flag=0 ->
  's'='s' flag=0 ->
' '=' ' flag=1 ->
'i'='I' flag=0 ->
  's'='s' flag=0 ->
' '=' ' flag=1 ->
'a'='A' flag=0 ->
' '=' ' flag=1 ->
  'b'='B' flag=0 ->
  'o'='o' flag=0 ->
  'o'='o' flag=0 ->
  'k'='k' flag=0 ->
  '!'='!' flag=0 ->
'\0' ->  end 
顶端 Posted: 2008-04-12 15:07 | [9 楼]
天宇魔羯



性别: 帅哥 状态: 该用户目前不在线
等级: 人见人爱
发贴: 4600
威望: 0
浮云: 1189
在线等级:
注册时间: 2007-05-16
最后登陆: 2010-04-16

5come5帮你背单词 [ normalization /no:məlai'zeiən/ n. 正常化,标准化 ]


Quote:
引用第7楼第二个太阳于2008-04-12 14:57发表的  :
这个程序的本意就应该是“this is a book!" ->"This Is A Book!"
if(*c=='')  这句应该是 if(*c==' ')  那应该是个空格
[code]#include "stdio.h"
int change(char *c,int fg)
{ if(*c==' ')         
.......

恩,就是,很多时候感觉很简单的问题都转不过湾来
顶端 Posted: 2008-04-12 15:09 | [10 楼]
snowcuso4





性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 873
威望: 0
浮云: 2361
在线等级:
注册时间: 2005-11-30
最后登陆: 2010-10-08

5come5帮你背单词 [ extend /iks'tend/ vt. 延长,延伸,扩大,扩充,给予,提供;vi. 伸展,延续,扩展 ]


指针还没看完,不发表意见~~
顶端 Posted: 2008-04-12 15:11 | [11 楼]
第二个太阳



性别: 帅哥 状态: 该用户目前不在线
头衔: 我要鸡蛋
等级: 前途无量
发贴: 5594
威望: 1
浮云: 1676
在线等级:
注册时间: 2004-11-26
最后登陆: 2008-06-29

5come5帮你背单词 [ longitude /'lond3əitju:d/ n. 经度 ]


Quote:
引用第10楼天宇魔羯于2008-04-12 15:09发表的  :

恩,就是,很多时候感觉很简单的问题都转不过湾来

没有注释流程的程序当然恼火了。。。看没有注释的程序简直是浪费青春。
顶端 Posted: 2008-04-12 15:14 | [12 楼]
rog



性别: 帅哥 状态: 该用户目前不在线
等级: 鹤立鸡群
家族: 单身贵族
发贴: 1329
威望: 0
浮云: 1039
在线等级:
注册时间: 2006-02-18
最后登陆: 2010-04-24

5come5帮你背单词 [ horizon /hə'raizn/ n. 地平线,水平线 ]


高手还是很多滴
顶端 Posted: 2008-04-12 15:32 | [13 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.012214(s) query 5, Time now is:11-22 09:51, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号