POJ 3094 Quicksum(水题) 涉及到字…

题意:输入一段字符,这段字符包括大写的字母,以及空格,当输入的字符是空格时对应的数字就是0,输入A时对应的数字是1,依次增加。当输入#的时候结束输入。第i个字符对应的字符乘i,然后相加。

 

分析:首先要知道能接收空格的输入方式,cin.getline()可以实现,范围是1~255个字母,所以开个256的数组就够用了,记住一次输入结束后要清空数组。


AC代码:(232k,0ms)

 

C++语言:
#include<iostream>
using namespace std;
int main()
{
    char   n [ 256 ];
    int sum;
    int ln;
    while( cin . getline(n , 256) &&n [ 0 ] != '#')
    {
    ln = strlen(n);
    sum = 0;
        for( int i = 0; i < ln; i ++)
        {
                if(n [ i ] == ' ') sum += 0;
                else if(n [ i ] >= 'A' &&n [ i ] <= 'Z')
                    sum +=( i + 1) *(n [ i ] - 'A' + 1);
        }
        cout << sum << endl;
        memset(n , 0 , 256);
    }
}

 

 

收获:

对于几种输入方法的总结。

C++可以使用的输入方法:

1.cin,遇到空格和回车都停止输入

2.cin.get()

 用法(1):cin.get(字符变量名)可以用来接收字符

 用法(2):cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格 

 用法(3):cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车,弥补cin.get(字符数组名,接收字符数目)的不足.

例: #include <iostream>

   int main()

   {

        using namespace std;

     char name[16];

     char school[50];

     cout<<请输入你的姓名:<<endl;

     cin.get(name,16);

     cin.get();

     cout<<输入你所在的学校名:<<endl;

     cin.getline(school,50);

     cout<<你的名字是:<<name<<endl;

     cout<<你在这所学校:<<name<<endl;

     return 0;

   }

 

   请输入你的姓名:Nedved pavel(注:输入 

   请输入你所在的学校名Juventus Italy   

   你的名字是Nedved pavel

   你在这所学校Juventus Italy

 

主要就是一个cin.get()的使用,其实上面的cin.get()cin.getline()基本上是没区别的,唯一的区别就是,cin.get(name,16)将最后输入的回车符号压入流中了,要想抛出这个回车号,才算正常使用,于是就加了一句cin.get()这也就是cin.get()的作用了。

 

3cin.getline()接受一个字符串,可以接收空格,遇到回车结束。,

其余的还有getline(),gets(),getchar()属于strintg流,要加上#include<string.h>,属于c语言,前3种已经够处理所有的情况了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值