2 qq 33486292 qq_33486292 于 2016.03.21 23:51 提问

c++简单问题,代码清晰,求解!

分别用char数组和string类型编写代码,使他们输出相同。


#include<iostream>
#include<string>
int main()
{
    using namespace std;
    string name;
    string dessert;

    cout << "Enter your name:\n";
    getline(cin,name);
    cout << "Enter your favorite desseert:\n";
    getline(cin,dessert);
    cout << "I have some delicious " << dessert;
    cout << " for you," << name << ".\n";
    return 0;
}

图片说明

#include<iostream>
#include<string>
int main()
{
    using namespace std;
    const int AirSize = 20;
    char name[AirSize];
    char dessert[AirSize];

    cout << "Enter your name:\n";
    cin.getline(name,AirSize);
    cout << "Enter your favorite desseert:\n";
    cin.getline(dessert,AirSize);
    cout << "I have some delicious " << dessert;
    cout << " for you," << name << ".\n";
    return 0;
}

图片说明
哪里不对,麻烦指出.谢谢

3个回答

caozhy
caozhy   Ds   Rxr 2016.03.22 00:20
已采纳
 #include<iostream>
#include<string>
int main()
{
    using namespace std;
    string name;
    name.resize(20);
    string dessert;
    dessert.resize(20);
    cout << "Enter your name:\n";
    cin.getline((char *)name.c_str(), 20);
    cout << "Enter your favorite desseert:\n";
    cin.getline((char *)dessert.c_str(), 20);
    cout << "I have some delicious " << dessert;
    cout << " for you," << name << ".\n";
    return 0;
}
sinat_34379439
sinat_34379439   2016.03.22 03:05

string 跟 char*
没有任何的区别.
只不过你用char*接受输入的时候需要设定array size。
你可以动态定义也可以静态。

你的第一个输入,在名字之后有一个ZZ,我不知道那是什么东西。按理说getline默认的delimeter是一个\n。如果你newline,他就会结束exe那行getline code。
第二个是没有什么问题的,唯一的问题可能是只接受一个20char的array。

直接从cin接受input 和getline没什么太大区别。

sinat_34379439
sinat_34379439   2016.03.22 03:08

cout << "....";
cin >> str1;
cout << "...";
cin >> str2;

cout << "..." << str1 << "..." << str2 << "...\n";



Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
穷举法迷宫求解简单实现(C)
穷举法迷宫求解简单实现,主要是锻炼队列及链表的使用,直接上代码: // // main.c // migong // // Created by mac on 12-8-13. // Copyright 2012年 __MyCompanyName__. All rights reserved. // #include #include #include
C语言简单迷宫问题,深搜,通俗易懂。
简单迷宫深搜-C表示新人,大神勿喷,欢迎给出建议。在网上搜了一些深搜,发现看不懂,就把自己写的贴出来,还是比较好理解。自己出的小迷宫题:给出迷宫,求出共多少方法,和最小最大路程。0表示可走,1表示墙,不可走。*表示入口,#表示出口。以下为代码,因为需要打印出各种路线,所以“+”号表示所走的路#include&amp;lt;stdio.h&amp;gt; char a[50][50]; int n,m,time=0...
n皇后问题的两种递归方法C语言实现
1.递归回溯法 #include #include #define N 15 int x[N]; //皇后放置的列数 int n; //皇后个数 int sum=0; //可行解个数 int place(int k) { int i; for(i=1;i<k;i++) if(abs(k-i)==abs(x[k]-x[
C语言数据结构顺序栈之迷宫求解最短路径
数据结构习题与解析(B级第3版) 李春葆 喻丹丹 编著 3.2
用动态规划法求解最大子段和问题 C语言实现
用动态规划法求解最大子段和问题 C语言实现
最大团问题(C语言算法设计与分析)
最大团问题(C语言算法设计与分析),里面有完整的C语言源代码,能正确运行,附带有课程设计说明书。
C语言实现迷宫求解
最近做了一个用C语言迷宫求解的题目,来分享一下。 题目要求://迷宫的布局放入到一个二维的数组中 1代表该地方走不通为墙,0代表该地方可以走通,打印出来走的顺序  //0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 const int mizu[10][10] = {      1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1,  //0
用C语言求解N阶线性矩阵方程Ax=b的简单解法
1. #include<stdio.h> 2. #include<stdlib.h> 3. #include<math.h> 4. #define dim 10 //定义最大的维数10,为防止计算值溢出 5. double a[dim+1][dim+1],b[dim+1],x[dim+1]; //定义双精度数组 6. double temp; 7. double getarray(int n); //定义输入矩阵元素的函数 8. double showarray(int n); //定义输出化简系数矩阵过程的函数 9. int n,i,j,k,p,q; 10. double main() 11. { 12. 13. printf("请输入系数矩阵的阶数n(n<10):"); 14. scanf("%d",&n); 15. /*判断矩阵阶数是否超过界定值*/ 16. if(n>dim) 17. { 18. printf("错误:元数超过初设定的值%d,请重启程序重新输入\n",dim); 19. exit(0); 20. } 21. 22. /*输入系数矩阵和常数矩阵(即增广矩阵)的元素*/ 23. getarray(n); 24. 25. /*使对角线上的主元素不为0*/ 26. for(j=1;j<=n-1;j++) 27. { 28. if(a[j][j]==0) 29. for(i=j+1;i<=n;i++) 30. { 31. if(a[i][j]!=0) 32. { 33. /*交换增广矩阵的第i行与第j行的所有元素*/
【高级算法】单纯形法求解线性规划问题(C++实现)
1 单纯形法(1) 单纯形法是解线性规划问题的一个重要方法。 其原理的基本框架为: 第一步:将LP线性规划变标准型,确定一个初始可行解(顶点)。 第二步:对初始基可行解最优性判别,若最优,停止;否则转下一步。 第三步:从初始基可行解向相邻的基可行解(顶点)转换,且使目标值有所改善—目标函数值增加,重复第二和第三步直到找到最优解。 (2) 用程序进行运算前,要将目标函数及约束方程变成标准形
硬币兑换问题的动态规划求解算法
对最少硬币兑换问题的算法进行了分析,并给出了实现