题目没什么好说的,自己对字符串的输入输出有些混,所以在用gets和 getchar两个输入时不知道该用哪个了,
总结一下关于输入输出的方式
cin 用法
1.最基本的用法,输入一个数字
2.接受一个字符串,遇到空格,“TAB” 回车都结束
cin.get()的用法
用法1: cin.get(字符变量名)可以用来接收字符
#include <iostream>
using namespace std;
main ()
{
char ch;
ch=cin.get(); //或者cin.get(ch);
cout<<ch<<endl;
}
输入:jljkljkl
输出:j
用法2:cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格
#include <iostream>
using namespace std;
main ()
{
char a[20];
cin.get(a,20);
cout<<a<<endl;
}
输入:jkl jkl jkl
输出:jkl jkl jkl
输入:abcdeabcdeabcdeabcdeabcde (输入25个字符)
输出:abcdeabcdeabcdeabcd (接收19个字符+1个'\0')
用法3:cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车,弥补cin.get(字符数组名,接收字符数目)的不足.
cin.getline()的用法
接受一个字符串,可以接受空格并输出
#include<cstdio>
#include<string>
int main()
{
char s[500];
int sum;
while(gets(s) && s[0]!= '#')
{
sum = 0;
int scount = strlen(s);
for(int i=0; i < scount;i ++)
{
if(s[i] == ' ')
continue;
else
sum += (s[i]-64)*(i+1);
}
printf("%d\n",sum);
}
}