-3

我正在编写一个 c++ 代码,该代码假设从键盘读取一个人的全名(名字和姓氏,用空格分隔),如果不存在,则将名称的第一个字母更改为大写,然后显示名称屏幕上。

问题是每次我尝试编译我的代码时,我都会在屏幕上看到我输入的名字,但不包括名字列表中的名字,但另一方面,我确实得到了我输入的姓氏。例如,当我输入“josh fred simon”作为名字,“Pirch”作为姓氏时,程序只输出 =“fred simon Pirch”,没有名字“josh”。

另一件事是如果输入名称的第一个字母不是大写的,如何将其更改为大写?

这是我的代码的副本>>

#include<conio.h>  
#include<cctype>
#include<iostream>
#include<stdio.h>
#include<string>

using namespace std;

// main entry point for the program  
void main() {

  char FirstName[20];
  char SurName[20];

  cout << "Program to read the information about a person";  
  cout << "\nEnter your First Names please\n";  

  cin >> FirstName;  

  gets(FirstName);

  cout << "\nEnter your Surname please\n";      
  cin >> SurName;

  //Now displaying the information      
  cout<<"Details of Person\n\n";

  cout<<"Full Name of the Person: "<< FirstName << " " << SurName << endl;

  getch();  
}      
4

1 回答 1

2

您正在阅读FirstName两次,第一次使用cin,然后再次使用gets

cin >> FirstName;  
gets(FirstName); // remove this line

此外,在您的代码中使用单个 IO 库。用于<iostream>C++ 代码并删除<stdio.h>

于 2013-10-20T20:44:27.520 回答