I need help, big big~该怎么处理
I need help, big big~
我写了下面一个程序
#include <iostream>
#include <cctype>
using namespace std;
struct club
{
char name [20];
double money;
};
int main ()
{
int n;
cout < < "请输入捐款者的数目 ";
cin > > n;
cin.get();
club * pc = new club [n];
for (int i = 0 ; i < n ; i++)
{
cout < < "输入姓名: ";
cin.getline(pc[i].name,20);
cout < < "输入捐款数量: ";
cin > > pc[i].money;
cin.get();
}
for (i = 0; i <n ;i++)
{
if(pc[i].money> 10000)
{
cout < < "Grand Patrous " < <endl;
if (isspace(pc[i].name[i])) //A处
cout < < "None " < <endl;
else
cout < <pc[i].name < <endl;
cout < <pc[i].money < <endl;
}
}
}
题目的意思是 一个俱乐部的捐款记录 要输出捐款人数 在分别输出 姓名 和捐款数量
最后 把 捐款超过10000的人和捐款打印出来
但是最后我遇到了一个难题 题目要求 :“对于没有输入姓名的 输出时候 用None代替” 我想了半天在程序A处用了一个判断首个字符是否为空格的函数isspace() 但是运行后 必须 输入一个空格 在回车 输出时候才能显示 None
请问我要用什么办法 才能只输入回车 在下面的打印时就能输出None呢?
第2个问题
如果 有个一个字符串
char word [20] = "nice day ";
那么请问word [0]是一个字符串 还是一个char?
why?
顺便发下牢骚
cctype里的
toupper()函数竟然返回的是个int直 害的我弄了半天才明白 书上也没说清楚 =。。=!
------解决方案--------------------
你可以试试把ispace换成strlen(...) == 0
另外,任何一个C库函数,都要认认真真看了它的说明后才能用,绝对不可以靠猜。
------解决方案--------------------
1:使用的 cin.getline 函数是默认以回车作为结束标志的
你直接使用回车输入,判断pc[i].name[0] 是否为 '\0’应该可以。
2:word[0]明显是字符。 word 是个字符指针,自己想想什么是字符串
------解决方案--------------------
1,strlen(..)==0
2,字符
word+i(i是一个整数)是一个字符串
*(word+i)==word[i]是字符
我写了下面一个程序
#include <iostream>
#include <cctype>
using namespace std;
struct club
{
char name [20];
double money;
};
int main ()
{
int n;
cout < < "请输入捐款者的数目 ";
cin > > n;
cin.get();
club * pc = new club [n];
for (int i = 0 ; i < n ; i++)
{
cout < < "输入姓名: ";
cin.getline(pc[i].name,20);
cout < < "输入捐款数量: ";
cin > > pc[i].money;
cin.get();
}
for (i = 0; i <n ;i++)
{
if(pc[i].money> 10000)
{
cout < < "Grand Patrous " < <endl;
if (isspace(pc[i].name[i])) //A处
cout < < "None " < <endl;
else
cout < <pc[i].name < <endl;
cout < <pc[i].money < <endl;
}
}
}
题目的意思是 一个俱乐部的捐款记录 要输出捐款人数 在分别输出 姓名 和捐款数量
最后 把 捐款超过10000的人和捐款打印出来
但是最后我遇到了一个难题 题目要求 :“对于没有输入姓名的 输出时候 用None代替” 我想了半天在程序A处用了一个判断首个字符是否为空格的函数isspace() 但是运行后 必须 输入一个空格 在回车 输出时候才能显示 None
请问我要用什么办法 才能只输入回车 在下面的打印时就能输出None呢?
第2个问题
如果 有个一个字符串
char word [20] = "nice day ";
那么请问word [0]是一个字符串 还是一个char?
why?
顺便发下牢骚
cctype里的
toupper()函数竟然返回的是个int直 害的我弄了半天才明白 书上也没说清楚 =。。=!
------解决方案--------------------
你可以试试把ispace换成strlen(...) == 0
另外,任何一个C库函数,都要认认真真看了它的说明后才能用,绝对不可以靠猜。
------解决方案--------------------
1:使用的 cin.getline 函数是默认以回车作为结束标志的
你直接使用回车输入,判断pc[i].name[0] 是否为 '\0’应该可以。
2:word[0]明显是字符。 word 是个字符指针,自己想想什么是字符串
------解决方案--------------------
1,strlen(..)==0
2,字符
word+i(i是一个整数)是一个字符串
*(word+i)==word[i]是字符