Facebook Sharer
选择您要替换的背景颜色:
【农历新年】背景图片:
个性化设定
 注册  找回密码
查看: 6421|回复: 60
打印 上一主题 下一主题

Term 2了。。。開始學web development了。。有問題會問

[复制链接]

5

主题

0

好友

1万

积分

荣誉会员

さてだ ...どうしよう?

Rank: 50Rank: 50Rank: 50Rank: 50Rank: 50

跳转到指定楼层
1#
发表于 2008-10-15 08:05 PM |只看该作者 |倒序浏览
前几个礼拜还好。。。
就学了while loop,if else,reverse那些。。。
今天学了点continue/break, switch case的。。。lecturer讲有点不清楚。。。头脑有点难消化
有点问题想问。。。

write a C++ program to count the numbers of vowels and consonants in a word
  1. #include<iostream>
  2. using namespace std;

  3. int main()
  4. {
  5.     int i=0,vowels=0,spaces=0,consonants=0;
  6.     char text[50];
  7.     cout<<"Enter the word\n";
  8.     cin>>text;
  9.     while(i<strlen(text))
  10.     {
  11.         switch(text[i])
  12.         {
  13.         case 'a':
  14.         case 'e':
  15.         case 'i':
  16.         case 'o':
  17.         case 'u':
  18.                    vowels++;
  19.                    break;
  20.         default:
  21.                    consonants++;
  22.                    break;
  23.         }
  24.         i++;
  25.         
  26.     }
  27. cout<<"Number of vowels="<<vowels<<"\n";
  28. cout<<"Number of consonants="<<consonants<<"\n";

  29. return 0;
  30. }
复制代码
想请问switch case的主要功能是?
然后i<strlen(text)是什么来的?

[ 本帖最后由 虚空使者 于 2008-12-22 04:23 PM 编辑 ]




收藏收藏0

13

主题

0

好友

2113

积分

白金长老

Rank: 10

2#
发表于 2008-10-15 08:46 PM |只看该作者
swiith case 等于把很多的 if else if else if else
弄成好读点



if  ( a ) {
  a++;
}elseif (b) {
  a++;
}elseif (c) {
  a++;
}else{
  break;
}

换成

switch (a){
case a;
case b;
case c;
   a++;
  break;
default;
  break;
}

strlen(text) = 抓text 的字长度


翻倒很烂
很久没 c++了


回复

使用道具 举报

5

主题

0

好友

1万

积分

荣誉会员

さてだ ...どうしよう?

Rank: 50Rank: 50Rank: 50Rank: 50Rank: 50

3#
发表于 2008-10-15 09:26 PM |只看该作者

回复 #2 goodday 的帖子

啊~看得懂~
简单明了

这个program只能找单字罢了。。。
lecturer要我们改成找text的。。。
而且还要我们算有几个space跟几个大写小写字母。。。
分明就是在刁难我们
我尝试把program改成如下。。。但是还是算不到space。。。一直是0  
而且consonant也出问题了。。。算不到。。。
至于算大写小写我完全不会
  1. #include<iostream>
  2. using namespace std;

  3. int main()
  4. {
  5.     int i=0,vowels=0,spaces=0,consonants=0;
  6.     char text[50];
  7.     cout<<"Enter the word\n";
  8.     cin>>text;
  9.     while(i<strlen(text))
  10.     {
  11.         switch(text)
  12.         {
  13.         case 'a':
  14.         case 'e':
  15.         case 'i':
  16.         case 'o':
  17.         case 'u':
  18.                    vowels++;
  19.                    break;
  20.         case ' ':
  21.                     spaces++
  22.                     break;
  23.         default:
  24.                    consonants++;
  25.                    break;
  26.         }
  27.         i++;
  28.         
  29.     }
  30. cout<<"Number of vowels="<<vowels<<"\n";
  31. cout<<"Number of spaces="<<spaces<<\n";
  32. cout<<"Number of consonants="<<consonants<<"\n";

  33. return 0;
  34. }
复制代码


回复

使用道具 举报

62

主题

5

好友

3715

积分

本站名嘴

Rank: 11Rank: 11

4#
发表于 2008-10-15 10:50 PM |只看该作者

回复 #3 虚空使者 的帖子

你的Case哪里弄错了……像goodday那样


回复

使用道具 举报

7

主题

1

好友

5108

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

5#
发表于 2008-10-15 10:59 PM |只看该作者
原帖由 虚空使者 于 2008-10-15 09:26 PM 发表
啊~看得懂~
简单明了

这个program只能找单字罢了。。。
lecturer要我们改成找text的。。。
而且还要我们算有几个space跟几个大写小写字母。。。
分明就是在刁难我们
我尝试把program改成如下 ...



這個也不難

1. 使用 while 循環取得每個 text 之後轉換成 ASCII

2. 使用 if 判斷 65 ~ 90 是大寫字母, 97 ~ 122 為小寫字母, 32 為空格



p/s: 剛剛發現你以上的錯誤, cin >> text  這樣取的話空格會被視為 NULL , 必須改成 cin.get(text, 50) 才能包含空格

[ 本帖最后由 Super-Tomato 于 2008-10-15 11:32 PM 编辑 ]


回复

使用道具 举报

0

主题

0

好友

270

积分

支柱会员

Rank: 4Rank: 4Rank: 4Rank: 4

6#
发表于 2008-10-16 08:17 PM |只看该作者
楼主,这些都在说什么东西啊em0010


回复

使用道具 举报

13

主题

0

好友

2113

积分

白金长老

Rank: 10

7#
发表于 2008-10-17 01:38 AM |只看该作者

番茄很强~~~~
快申请帮主啦~~~~
叫了你很多次了~~~


回复

使用道具 举报

7

主题

1

好友

5108

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

8#
发表于 2008-10-17 02:22 AM |只看该作者
原帖由 goodday 于 2008-10-17 01:38 AM 发表

番茄很强~~~~
快申请帮主啦~~~~
叫了你很多次了~~~



金盆洗手多年了, 當幫主的話就不用啦
來這裡只是平時做到悶了順便串一下門子解解悶
況且甚麼都只會一些些還不夠格


回复

使用道具 举报

13

主题

0

好友

2113

积分

白金长老

Rank: 10

9#
发表于 2008-10-18 11:05 AM |只看该作者

太谦虚咯


回复

使用道具 举报

6

主题

0

好友

588

积分

青铜长老

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

10#
发表于 2008-10-19 09:29 PM |只看该作者
小生之前有做过类似的东西,所以楼主不妨看看以下的东西来参考。。。

#include<iostream>
#include <cctype>
using namespace std;

int main()
{
    int i=0,vowels=0,spaces=0,consonants=0;
    int upper = 0;
    char text[50];
   
    cout<<"Enter the word\n";
   
    for(i = 0; i < 50; i ++)
    {
        cin.get(text[ i]);
        if(i > 50)
        {
             cout << "Input text length too large.\n";
        }
        else if(text[ i] == '\n')
        {
             break;
        }
    }
   
    int text_size = i;
   
    char temp[text_size];
   
    for(i = 0; i < text_size; i ++)
    {
          temp[ i] = text[ i];
    }
   
    i = 0; //initialise i back to 0
   
    while(i < text_size)
    {
        switch(temp[ i])
        {
             case 'a': case 'A':
             case 'e': case 'E':
             case 'i': case 'I':
             case 'o': case 'O':
             case 'u': case 'U':
                  vowels++;
                  break;
             case ' ':
                  spaces++;
                  break;
             default:
                  consonants++;
                  break;
        }
        i++;
    }
   
    i = 0; //initialise i back to 0
   
    while(i < text_size)
    {
        if(isupper(temp[ i]))
        {
              upper ++;
        }
        i ++;
    }
   
    cout<<"Number of vowels="<<vowels<<"\n";
    cout<<"Number of spaces="<<spaces<< endl;
    cout<<"Number of c\n";
    cout<<"Number of uppercases="<<upper<<"\n";

    system("pause");
    return 0;
}

当中isupper这个function是在cctype library里面的,可以用来查大写字母。。。
而小写字母则能够用islower,方法和isupper一样。。。
如果有不明白的就尽管问吧。。。或者有前辈能够分享更好的方法就更好了

[ 本帖最后由 EndOfEden 于 2008-10-19 09:39 PM 编辑 ]


回复

使用道具 举报

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

JBTALKS.CC |联系我们 |隐私政策 |Share

GMT+8, 2024-11-25 07:32 PM , Processed in 0.111933 second(s), 26 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Ultra High-performance Dedicated Server powered by iCore Technology Sdn. Bhd.
Domain Registration | Web Hosting | Email Hosting | Forum Hosting | ECShop Hosting | Dedicated Server | Colocation Services
本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved
合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部