C++Primer Plus第四章结构编程练习3

3.编写一个程序,它要求用户首先输入其名,然后输入其姓;然后程序使用一个逗号和空格将姓和名组合起来,并存储和显示组合结果。请使用char数组和头文件cstring中的函数。下面是该程序运行时的情形:

Enter your first name:Flip

Enter your last name:Fleming

Here's the information in a single string: Fleming, Flip

cpp 复制代码
#pragma region 第四章练习3
/*
3.编写一个程序,它要求用户首先输入其名,然后输入其姓;
然后程序使用一个逗号和空格将姓和名组合起来,并存储和显示组合结果。
请使用char数组和头文件cstring中的函数。下面是该程序运行时的情形:
Enter your first name:Flip
Enter your last name:Fleming
Here's the information in a single string: Fleming, Flip
*/
#if 1
#include <iostream>
#include <cstring>
#include <string>

int main()
{
	using namespace std;
	char firstName[20];
	char lastName[20];
	cout << "Enter your first name : ";
	cin.getline(firstName, 20);
	cout << "Enter your last name : ";
	cin.getline(lastName, 20);
	//存储
	char name[40] ;
	int len1 = strlen(lastName) + 1;
	strcpy_s(name, len1, lastName);//原函数strcpy要报错,这里改用更安全的strcpy,下面的strcat_s同理
	int len2 = strlen(name) + strlen(", ") + 1;
	strcat_s(name, len2, ", ");
	int len3 = strlen(name) + strlen(firstName) + 1;
	strcat_s(name, strlen(firstName)+strlen(name) + 1, firstName);
	//显示
	cout << "Here's the information in a single string: " << name << endl;
	return 0;
}
#endif 
#pragma endregion

这里要注意的点:求字符串长度不能用sizeoof(),而是使用strlen()函数求字符串的长度,这里是不一样的,需要注意

相关推荐
tjl521314_212 分钟前
04C++ 名称空间(Namespace)
开发语言·c++
ximu_polaris6 分钟前
设计模式(C++)-行为型模式-备忘录模式
c++·设计模式·备忘录模式
赏金术士13 分钟前
Kotlin 数据流与单双向绑定
android·开发语言·kotlin
逻辑驱动的ken1 小时前
Java高频面试场景题25
java·开发语言·深度学习·面试·职场和发展
AI人工智能+电脑小能手2 小时前
【大白话说Java面试题】【Java基础篇】第32题:Java的异常处理机制是什么
java·开发语言·后端·面试
無限進步D4 小时前
Java 面向对象高级 接口
java·开发语言
tankeven4 小时前
C++ 智能指针
c++
两年半的个人练习生^_^5 小时前
Java日志框架和使用、日志记录规范
java·开发语言·开发规范
杨凯凡5 小时前
【032】排查入门:jstack、heap dump、Arthas 初识
java·开发语言·后端
其实防守也摸鱼6 小时前
无线网络安全--实验 规避WLAN验证之发现隐藏的SSID
java·开发语言·网络·安全·web安全·智能路由器·无线网络安全