【C++基础】003-生日贺卡改良
作者:互联网
改良程序的一些要求
-
输入收卡人的名字;
-
输入送卡人的名字;
-
名字是一串字母或汉字,程序中成为字符串;
-
C++,字符串可以这样表示:
-
char s[50];//s是字符数组 声明语句
-
声明方法
Char <字符串名>[<字符串最大长度>];//char-character
例:
char name1[50];
char name1[50];
或:
char name1[50],name1[50];
-
输入,cin
cin>> <字符数组名>;
例:
cin>>name1;
cin>>name2;
或:
cin>>name1>>name2;
-
输出,cout
cout<< <字符数组名>;
cout<<name1;
cout<<name2;
-
常规的代码写法
#include <iostream>
using namespace std;
int main()
{
char name1[50], name2[50]; //声明语句,name1和name2字符数组
cin >> name1 >> name2; //输入字符串,先声明再使用
cout << "#######################################################" << endl;
cout << name1 << endl;
cout << endl;
cout << "Happy birthday to you!" << endl;
cout << endl;
cout << " sincerely yours " << name2 << endl;
cout << "#######################################################" << endl;
return 0;
}
执行结果
Tony
Json
#######################################################
Tony
Happy birthday to you!
sincerely yours Json
#######################################################
当输入带有空格的名字时
执行结果
Tony Boy
#######################################################
Tony
Happy birthday to you!
sincerely yours Boy
#######################################################
错误的原因在于
-
cin,以空格、键、<回车键>作为分隔符;
-
当遇到了以上符号,就认为一项数据的输入结束了;
-
cin>>name1>>name2;
其中“zhang”赋值给了name1,“san”赋值给了name2;
改进后的代码
#include<iostream>
usingnamespacestd;
int main(){
char name1[50],name2[50];//声明语句,name1和name2字符数组
//cin>>name1>>name2;//输入字符串,先声明再使用
cin.getline(name1,50);
cin.getline(name2,50);
cout<<"#######################################################"<<endl;
cout<<name1<<endl;
cout<<endl;
cout<<"Happy birthday to you!"<<endl;
cout<<endl;
cout<<" sincerely yours "<<name2<<endl;
cout<<"#######################################################"<<endl;
return0;
}
执行结果
Tony Boy
Jim
#######################################################
Tony Boy
Happy birthday to you!
sincerely yours Jim
#######################################################
标签:char,cout,cin,C++,贺卡,003,name2,name1,50 来源: https://blog.csdn.net/wyf237/article/details/102769712